(Difference between revisions)

Archived:Using eSWT FileDialog in Java ME

From Nokia Developer Wiki
Jump to: navigation, search
skalogir (Talk | contribs)
(Skalogir -)
hamishwillee (Talk | contribs)
m (Hamishwillee - Adding missing translation link)
(4 intermediate revisions by one user not shown)
Line 1: Line 1:
[[Category:Java ME]][[Category:MIDP 2.0]][[Category:File Connection and PIM API (JSR-75)]][[Category:ESWT API]][[Category:Code Examples]][[Category:S60 3rd Edition FP2]][[Category:S60 5th Edition]][[Category:Symbian^3]][[Category:Symbian Anna]][[Category:Nokia Belle]]
[[Category:Java ME]][[Category:MIDP 2.0]][[Category:File Connection and PIM API (JSR-75)]][[Category:ESWT API]][[Category:Code Examples]][[Category:S60 3rd Edition FP2]][[Category:S60 5th Edition]][[Category:Symbian^3]][[Category:Symbian Anna]][[Category:Nokia Belle]][[Category:Symbian]][[Category:Files/Data]]
{{ReviewForRemovalFromArchive|user=[[User:Skalogir|Skalogir]] 14:53, 15 August 2012 (EEST)|Fully working article and a useful one. What happened? This should not have been archived. I am updating the categories, uploading source and binaries and adding some screenshots}}
{{Archived|timestamp=20120313130339|user=roy.debjit| }}
{{ArticleMetaData <!-- v1.2 -->
{{ArticleMetaData <!-- v1.2 -->
Line 41: Line 34:
<gallery widths=240px heights=320px>
<gallery widths=240px heights=320px>
File:E52ori.jpg| Start Screen on E52
File:E52ori.jpg| Start Screen on E52
File:E52toplevel.jpg| Selection window
File:E52depth.jpg| Root of phone memory on E52
File:E52depth.jpg| Root of phone memory on E52
Line 47: Line 40:
<gallery widths=180px heights=320px>
<gallery widths=180px heights=320px>
File:808toplevel.jpg| Selection window
File:808depth.jpg|Root of phone memory on PureView 808
File:808depth.jpg|Root of phone memory on PureView 808
Line 186: Line 179:
* [[ESWT|eSWT]]
* [[ESWT|eSWT]]
<!-- Translation --> [[pt:Como usar caixas de diálogo eSWT em Java ME]]

Revision as of 10:32, 17 September 2012


Version Hint

Windows Phone: [[Category:Windows Phone]]
[[Category:Windows Phone 7.5]]
[[Category:Windows Phone 8]]

Nokia Asha: [[Category:Nokia Asha]]
[[Category:Nokia Asha Platform 1.0]]

Series 40: [[Category:Series 40]]
[[Category:Series 40 1st Edition]] [[Category:Series 40 2nd Edition]]
[[Category:Series 40 3rd Edition (initial release)]] [[Category:Series 40 3rd Edition FP1]] [[Category:Series 40 3rd Edition FP2]]
[[Category:Series 40 5th Edition (initial release)]] [[Category:Series 40 5th Edition FP1]]
[[Category:Series 40 6th Edition (initial release)]] [[Category:Series 40 6th Edition FP1]] [[Category:Series 40 Developer Platform 1.0]] [[Category:Series 40 Developer Platform 1.1]] [[Category:Series 40 Developer Platform 2.0]]

Symbian: [[Category:Symbian]]
[[Category:S60 1st Edition]] [[Category:S60 2nd Edition (initial release)]] [[Category:S60 2nd Edition FP1]] [[Category:S60 2nd Edition FP2]] [[Category:S60 2nd Edition FP3]]
[[Category:S60 3rd Edition (initial release)]] [[Category:S60 3rd Edition FP1]] [[Category:S60 3rd Edition FP2]]
[[Category:S60 5th Edition]]
[[Category:Symbian^3]] [[Category:Symbian Anna]] [[Category:Nokia Belle]]

Article Metadata
Code ExampleTested with
Devices(s): S60 3rd Ed. FP2 SDK
Keywords: eSWT, FileDialog
Created: jarmlaht (07 May 2008)
Last edited: hamishwillee (17 Sep 2012)


This code snippet demonstrates how to use eSWT's FileDialog class in Java ME. A FileDialog can be opened and when a file is selected, its size is shown on the screen. The following section contains the complete code for compiling and running the example application.

Source code

import javax.microedition.midlet.*;
import org.eclipse.ercp.swt.mobile.Command;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.layout.FillLayout;
import javax.microedition.io.file.FileConnection;
import javax.microedition.io.Connector;
import java.io.IOException;
public class FileDialogMIDlet extends MIDlet implements Runnable, SelectionListener {
private Thread UIThread;
private Display display;
private Shell formShell;
private boolean exiting = false;
private Command fileCommand;
private Command exitCommand;
private Text text;
private String textString = "FileDialogMIDlet";
public void startApp() {
// Create the eSWT UI thread.
if(UIThread == null) {
UIThread = new Thread(this);
public void pauseApp() {
public void destroyApp(boolean unconditional) {
// Make the event loop exit in the eSWT UI thread.
// Wait for the eSWT UI thread to die.
try {
} catch(InterruptedException e) {
void exitEventLoop() {
exiting = true;
// The eSWT UI Thread.
public void run() {
display = new Display();
FillLayout fillLayout = new FillLayout();
formShell = new Shell(display);
Composite form = new Composite(formShell, SWT.NONE);
text = new Text(form, SWT.READ_ONLY | SWT.WRAP);
fileCommand = new Command(formShell, Command.SELECT, 0);
fileCommand.setText("Open FileDialog");
exitCommand = new Command(formShell, Command.EXIT, 0);
// Execute the eSWT event loop.
while(!exiting) {
if(!display.readAndDispatch()) {
// Clean up and destroy the MIDlet.
public void widgetDefaultSelected(SelectionEvent e) {
public void widgetSelected(SelectionEvent e) {
if (e.widget.equals(fileCommand)) {
if (e.widget.equals(exitCommand)) {
// Exit command selected, exit the event loop.
public void openFileDialog() {
FileDialog fDialog = new FileDialog(formShell);
String filterPath = fDialog.getFilterPath();
String temp = filterPath.replace('\\', '/'); // '\‘ characters are replaced with '/'
filterPath = temp;
String fileName = fDialog.getFileName();
String path = "file:///" + filterPath + fileName;
// path is for example: file:///C:/Data/Images/image.png, this can be used as file
// URL for FileConnection
if (!path.equals("file:///")) {
// Path equals "file:///", if file dialog is canceled.
try {
FileConnection fc = (FileConnection) Connector.open(path, Connector.READ);
if (!fc.isDirectory()) {
textString = "File size: " + fc.fileSize() + " bytes";
} catch (IOException ioe) {
// Thrown if an I/O error occurs or if the method is invoked on a directory.
// Note: It is not possible to select a directory in FileDialog.
textString = "IOException: " + ioe.getMessage();
catch (SecurityException se) {
// Thrown if the security of the application does not have read access for
// the file.
textString = "SecurityException: " + se.getMessage();


When a FileDialog is opened and a file is selected in it, the file size is shown on the screen.

See also

216 page views in the last 30 days.