首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

swt简易记事簿

2012-12-27 
swt简易记事本1.简易记事本1package my.test.swtimport java.io.BufferedReaderimport java.io.FileInpu

swt简易记事本

1.简易记事本1package my.test.swt;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import org.eclipse.swt.SWT;import org.eclipse.swt.events.SelectionEvent;import org.eclipse.swt.events.SelectionListener;import org.eclipse.swt.graphics.Image;import org.eclipse.swt.widgets.Button;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.FileDialog;import org.eclipse.swt.widgets.MessageBox;import org.eclipse.swt.widgets.Shell;import org.eclipse.swt.widgets.Text;public class FirstSwt {private static Display display;private static Shell shell;private static Text text;private static String fn = "";/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubdisplay = new Display();shell = new Shell(display, SWT.DIALOG_TRIM);Image imge = new Image(display.getCurrent(), "icons/calendar_edit.png");shell.setImage(imge);shell.setText("记事本");shell.setSize(500, 400);Button newButton = new Button(shell, SWT.PUSH);newButton.setLocation(2, 5);newButton.setSize(50, 20);newButton.setText("新建");/** * xi */newButton.addSelectionListener(new SelectionListener() {@Overridepublic void widgetSelected(SelectionEvent e) {// TODO Auto-generated method stubfn = "";shell.setText("新建文件");text.setText("<--请输入您要输入的文字-->");}@Overridepublic void widgetDefaultSelected(SelectionEvent e) {// TODO Auto-generated method stub}});Button openButton = new Button(shell, SWT.PUSH);openButton.setLocation(60, 5);openButton.setSize(50, 20);openButton.setText("打开");openButton.addSelectionListener(new SelectionListener() {@Overridepublic void widgetSelected(SelectionEvent e) {// TODO Auto-generated method stubFileDialog fdl = new FileDialog(shell, SWT.OPEN);String fileName = fdl.open();try {if (fileName != null) {// 打开指定的文件FileInputStream fis = new FileInputStream(fileName);text.setText("");BufferedReader in = new BufferedReader(new InputStreamReader(fis));String s = null;// 将指定的文件一行一行地加到文本框中while ((s = in.readLine()) != null) {text.append(s + "\r\n");}}if (fileName != null) {fn = fileName;shell.setText(fn);MessageBox successBox = new MessageBox(shell);successBox.setText("信息");successBox.setMessage("打开文件成功!");successBox.open();}} catch (Exception ex) {ex.printStackTrace();MessageBox errorBox = new MessageBox(shell, SWT.ICON_ERROR);errorBox.setText("错误");errorBox.setMessage("打开文件失败!");errorBox.open();}}@Overridepublic void widgetDefaultSelected(SelectionEvent e) {// TODO Auto-generated method stub}});Button saveButton = new Button(shell, SWT.PUSH);saveButton.setLocation(118, 5);saveButton.setSize(50, 20);saveButton.setText("保存");saveButton.addSelectionListener(new SelectionListener() {@Overridepublic void widgetSelected(SelectionEvent e) {// TODO Auto-generated method stubtry {String fileName = "";if (fn.equals("")) {FileDialog dlg = new FileDialog(shell, SWT.SAVE);fileName = dlg.open();if (fileName != null) {fn = fileName;shell.setText(fn);}}if (fn != "") {FileOutputStream fos = new FileOutputStream(fn);OutputStreamWriter out = new OutputStreamWriter(fos);out.write(text.getText());out.close();shell.setText(fn);MessageBox successBox = new MessageBox(shell);successBox.setText("信息");successBox.setMessage("保存文件成功!");successBox.open();}} catch (Exception ex) {ex.printStackTrace();MessageBox errorBox = new MessageBox(shell);errorBox.setText("信息");errorBox.setMessage("保存失败");errorBox.open();}}@Overridepublic void widgetDefaultSelected(SelectionEvent e) {// TODO Auto-generated method stub}});Button myButton = new Button(shell, SWT.PUSH);myButton.setLocation(176, 5);myButton.setSize(50, 20);myButton.setText("清空");myButton.addSelectionListener(new SelectionListener() {@Overridepublic void widgetSelected(SelectionEvent e) {// TODO Auto-generated method stubtext.setText("");}@Overridepublic void widgetDefaultSelected(SelectionEvent e) {// TODO Auto-generated method stub}});text = new Text(shell, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.WRAP);text.setLocation(2, 30);text.setSize(shell.getClientArea().width - 4,shell.getClientArea().height - 35);shell.open();//打开窗口while (!shell.isDisposed()) {if (!display.readAndDispatch())// 如果未发生事件,通过sleep方法进行监视事件队列display.sleep();}display.dispose();//释放底层资源}}


2.简易记事本2

package my.test.swt;import java.io.BufferedReader;   import java.io.File;   import java.io.FileReader;   import java.io.FileWriter;   import java.io.IOException;     import org.eclipse.jface.resource.ImageDescriptor;   import org.eclipse.jface.resource.ImageRegistry;   import org.eclipse.swt.SWT;   import org.eclipse.swt.custom.StyledText;   import org.eclipse.swt.events.ModifyEvent;   import org.eclipse.swt.events.ModifyListener;   import org.eclipse.swt.graphics.Font;   import org.eclipse.swt.graphics.Image;   import org.eclipse.swt.layout.GridData;   import org.eclipse.swt.layout.GridLayout;   import org.eclipse.swt.widgets.Display;   import org.eclipse.swt.widgets.Event;   import org.eclipse.swt.widgets.FileDialog;   import org.eclipse.swt.widgets.Listener;   import org.eclipse.swt.widgets.Menu;   import org.eclipse.swt.widgets.MenuItem;   import org.eclipse.swt.widgets.MessageBox;   import org.eclipse.swt.widgets.Shell;   import org.eclipse.swt.widgets.ToolBar;   import org.eclipse.swt.widgets.ToolItem; public class BasicEditor {Display display = new Display();    Shell shell = new Shell(display);      StyledText text;    boolean hasUnsavedChanges;    File file;    private String lastOpenDirectory;    public static final String APP_NAME = "BasicEditor v1.0";      MenuItem miWrap = null;        public BasicEditor() {          shell.setLayout(new GridLayout());       ToolBar toolBar = new ToolBar(shell, SWT.FLAT | SWT.RIGHT );     ToolItem tiNew = new ToolItem(toolBar, SWT.PUSH);     tiNew.setText("&New");     tiNew.setImage(getImage("calendar_edit.png"));     tiNew.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       if(handleChangesBeforeDiscard())  {        file = null;        text.setText("");       }      }     });          ToolItem tiOpen = new ToolItem(toolBar, SWT.PUSH);     tiOpen.setText("&Open");     tiOpen.setImage(getImage("calendar_edit.png"));     tiOpen.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       if(handleChangesBeforeDiscard())        loadTextFromFile();      }     });          ToolItem tiSave = new ToolItem(toolBar, SWT.PUSH);     tiSave.setText("&Save");     tiSave.setImage(getImage("calendar_edit.png"));     tiSave.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       saveTextToFile();      }     });            new ToolItem(toolBar, SWT.SEPARATOR);         ToolItem tiCopy = new ToolItem(toolBar, SWT.PUSH);     tiCopy.setText("&Copy");     tiCopy.setImage(getImage("calendar_edit.png"));     tiCopy.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       text.copy();      }     });          ToolItem tiCut = new ToolItem(toolBar, SWT.PUSH);     tiCut.setText("Cu&t");     tiCut.setImage(getImage("calendar_edit.png"));     tiCut.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       text.cut();      }     });          ToolItem tiPaste = new ToolItem(toolBar, SWT.PUSH);     tiPaste.setText("&Paste");     tiPaste.setImage(getImage("calendar_edit.png"));     tiPaste.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       text.paste();      }     });          new ToolItem(toolBar, SWT.SEPARATOR);          final ToolItem tiWrap = new ToolItem(toolBar, SWT.CHECK);     tiWrap.setText("&Wrap");     tiWrap.addListener(SWT.Selection, new Listener() {       public void handleEvent(Event event) {        text.setWordWrap(tiWrap.getSelection());        miWrap.setSelection(tiWrap.getSelection());       }     });            toolBar.pack();          System.out.println("Client area: " + shell.getClientArea());          text =      new StyledText(       shell,       SWT.MULTI        | SWT.WRAP        | SWT.BORDER        | SWT.H_SCROLL        | SWT.V_SCROLL);     text.setLayoutData(new GridData(GridData.FILL_BOTH));       Font font = new Font(shell.getDisplay(), "Courier New", 10, SWT.NORMAL);     text.setFont(font);       text.setText("BasicEditor version 1.0\r\nWriten by Jack Li Guojie. ");     text.addModifyListener(new ModifyListener() {      public void modifyText(ModifyEvent e) {       hasUnsavedChanges = true;      }     });            Menu menuBar = new Menu(shell, SWT.BAR);          MenuItem fileMenuItem = new MenuItem(menuBar, SWT.CASCADE);     fileMenuItem.setText("&File");     Menu fileMenu = new Menu(shell, SWT.DROP_DOWN);          MenuItem miNew = new MenuItem(fileMenu, SWT.PUSH);     miNew.setText("&New\tCtrl+N");     miNew.setImage(getImage("calendar_edit.png"));     miNew.setAccelerator(SWT.CTRL + 'N');     miNew.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       if(handleChangesBeforeDiscard())  {        file = null;        text.setText("");       }      }     });          MenuItem miOpen = new MenuItem(fileMenu, SWT.PUSH);     miOpen.setText("&Open\tCtrl+O");     miOpen.setAccelerator(SWT.CTRL + 'O');     miOpen.setImage(getImage("calendar_edit.png"));     miOpen.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       if(handleChangesBeforeDiscard())        loadTextFromFile();      }     });          MenuItem miSave = new MenuItem(fileMenu, SWT.PUSH);     miSave.setText("&Save\tCtrl+S");     miSave.setImage(getImage("calendar_edit.png"));     miSave.setAccelerator(SWT.CTRL + 'S');     miSave.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       saveTextToFile();      }     });          new MenuItem(fileMenu, SWT.SEPARATOR);          MenuItem miExit = new MenuItem(fileMenu, SWT.PUSH);     miExit.setText("&Exit");     miExit.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       if(handleChangesBeforeDiscard())        shell.dispose();      }     });          fileMenuItem.setMenu(fileMenu);          MenuItem editMenuItem = new MenuItem(menuBar, SWT.CASCADE);     editMenuItem.setText("&Edit");          Menu editMenu = new Menu(shell, SWT.DROP_DOWN);          MenuItem miCopy = new MenuItem(editMenu, SWT.PUSH);     miCopy.setText("&Copy\tCtrl+C");     miCopy.setImage(getImage("calendar_edit.png"));     miCopy.setAccelerator(SWT.CTRL + 'C');     miCopy.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       text.copy();      }     });          MenuItem miCut = new MenuItem(editMenu, SWT.PUSH);     miCut.setText("Cu&t\tCtrl+X");     miCut.setImage(getImage("calendar_edit.png"));     miCut.setAccelerator(SWT.CTRL + 'X');     miCut.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       text.cut();      }     });          MenuItem miPaste = new MenuItem(editMenu, SWT.PUSH);     miPaste.setText("&Paste\tCtrl+P");     miPaste.setImage(getImage("calendar_edit.png"));     miPaste.setAccelerator(SWT.CTRL + 'P');     miPaste.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       text.paste();      }     });          editMenuItem.setMenu(editMenu);          MenuItem formatMenuItem = new MenuItem(menuBar, SWT.CASCADE);     formatMenuItem.setText("&Format");          Menu formatMenu = new Menu(shell, SWT.DROP_DOWN);          miWrap = new MenuItem(formatMenu, SWT.CHECK);     miWrap.setText("&Wrap\tCtrl+W");     miWrap.setAccelerator(SWT.CTRL + 'W');     miWrap.addListener(SWT.Selection, new Listener() {      public void handleEvent(Event event) {       text.setWordWrap(miWrap.getSelection());       tiWrap.setSelection(miWrap.getSelection());      }     });          formatMenuItem.setMenu(formatMenu);          shell.setMenuBar(menuBar);         shell.setSize(400, 200);     shell.open();       while (!shell.isDisposed()) {      if (!display.readAndDispatch()) {       display.sleep();      }     }       display.dispose();    }        ImageRegistry imageRegistry = new ImageRegistry();        private Image getImage(String shortFileName) {     if(imageRegistry.getDescriptor(shortFileName) == null) {      ImageDescriptor descriptor = ImageDescriptor.createFromFile(null, "c:/icons/" + shortFileName);      imageRegistry.put(shortFileName, descriptor);     }     return imageRegistry.get(shortFileName);    }      boolean handleChangesBeforeDiscard() {     if(! hasUnsavedChanges)      return true;     MessageBox messageBox = new MessageBox(shell, SWT.ICON_WARNING | SWT.YES | SWT.NO | SWT.CANCEL);     messageBox.setMessage("Do you want to save the changes to " + (file == null ? "a file?" : file.getName()));     messageBox.setText(APP_NAME);     int ret = messageBox.open();     if(ret == SWT.YES) {      return saveTextToFile();     }else if(ret == SWT.NO) {      return true;     }else{      return false;     }    }      boolean loadTextFromFile() {     FileDialog dialog = new FileDialog(shell, SWT.OPEN);     if (lastOpenDirectory != null)      dialog.setFilterPath(lastOpenDirectory);     String selectedFile = dialog.open();     if (selectedFile == null) {      log("Action cancelled: loading the text from a file");      return false;     }     file = new File(selectedFile);     lastOpenDirectory = file.getParent();     try {      BufferedReader reader = new BufferedReader(new FileReader(file));      StringBuffer sb = new StringBuffer();      String line = null;      while((line = reader.readLine()) != null) {       sb.append(line);       sb.append("\r\n");      }      text.setText(sb.toString());      return true;     }catch(IOException e) {      log("Failed to load the text from file: " + file);      log(e.toString());     }     return false;    }      boolean saveTextToFile() {     if (file == null) {      FileDialog dialog = new FileDialog(shell, SWT.SAVE);      if (lastOpenDirectory != null)       dialog.setFilterPath(lastOpenDirectory);      String selectedFile = dialog.open();      if (selectedFile == null) {       log("Action cancelled: saving the text to a file");       return false;      }      file = new File(selectedFile);      lastOpenDirectory = file.getParent();     }     try {      FileWriter writer = new FileWriter(file);      writer.write(text.getText());      writer.close();      log("The text has been saved to file: " + file);        hasUnsavedChanges = false;      return true;     } catch (IOException e) {      log("Failed to save the text to file: " + file);      log(e.toString());     }     return false;    }      void log(String message) {     System.out.println(message);    }      public static void main(String[] args) {     new BasicEditor();    }   }

热点排行