java如何写菜单 本帖最后由 sAS112UUUYY111 于 2010-01-28 10:46:46 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不是JMenu可以实现吗?难道不是GUI? 楼主是想问如何给窗体上添加菜单,并增加菜单响应吗?给窗体上添加菜单: JMenuBar fileBar = new JMenuBar();//设置菜单栏JMenu fileMenu = new JMenu("文件");//给菜单栏加菜单JMenuItem exitMenu = new JMenuItem("退出");fileBar.add(fileMenu); fileMenu.add(exitMenu);mainFrame.setJMenuBar(fileBar);增加菜单响应:exitMenu.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) {mainFrame.dispose();}}); 对,就是显示在主窗口,不用另弹出一个窗口,和eclipse一样。 package Menu;import java.awt.*; import java.awt.event.*; public class TestMenuBar { MenuBar mb=new MenuBar(); Menu filem=new Menu("文件"); Menu editm=new Menu("编辑"); Menu geshim=new Menu("格式"); Menu chakanm=new Menu("查看"); Menu helpm=new Menu("帮助"); MenuItem filem1=new MenuItem("新建"); MenuItem filem2=new MenuItem("打开"); MenuItem filem3=new MenuItem("保存"); MenuItem filem4=new MenuItem("另存为"); MenuItem filem5=new MenuItem("页面设置"); MenuItem filem6=new MenuItem("打印"); MenuItem editm1=new MenuItem("撤消"); MenuItem editm2=new MenuItem("剪切"); MenuItem editm3=new MenuItem("复制"); MenuItem editm4=new MenuItem("粘贴"); MenuItem editm5=new MenuItem("删除"); MenuItem editm6=new MenuItem("查找"); MenuItem editm7=new MenuItem("查找下一个"); MenuItem editm8=new MenuItem("替换"); MenuItem editm9=new MenuItem("转到"); MenuItem editm10=new MenuItem("全选"); MenuItem editm11=new MenuItem("时间/日期"); MenuItem geshim2=new MenuItem("字体"); CheckboxMenuItem geshim1=new CheckboxMenuItem("自动换行",true); CheckboxMenuItem ch=new CheckboxMenuItem("退出",true); MenuItem chakanm1=new MenuItem("状态栏"); MenuItem helpm1=new MenuItem("帮助主题"); MenuItem helpm2=new MenuItem("关于记事本"); TestMenuBar() { Frame f=new Frame("简单的菜单"); f.setLayout(new FlowLayout()); mb.add(filem); mb.add(editm); mb.add(geshim); mb.add(chakanm); mb.add(helpm); filem.add(filem1); filem.add(filem2); filem.add(filem3); filem.add(filem4); filem.addSeparator(); filem.add(filem5); filem.add(filem6); filem.addSeparator(); filem.add(ch); editm.add(editm1); editm.addSeparator(); editm.add(editm2); editm.add(editm3); editm.add(editm4); editm.add(editm5); editm.addSeparator(); editm.add(editm6); editm.add(editm7); editm.add(editm8); editm.add(editm9); editm.addSeparator(); editm.add(editm10); editm.add(editm11); geshim.add(geshim1); geshim.add(geshim2); chakanm.add(chakanm1); helpm.add(helpm1); helpm.addSeparator(); helpm.add(helpm2); f.setMenuBar(mb); f.setSize(300,100); f.setVisible(true); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { System.exit(0); } } ); } public static void main(String[]args) { new TestMenuBar(); } } 也可以用SWT贴一个简单记事本的完全代码,可以参考学习;Java写界面最好还是用SWT、JFace这套东西,AWT,Swing用于做软件效果差(显示效果)代码:[code=package swt.all.TextEditor;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import org.eclipse.swt.SWT;import org.eclipse.swt.events.SelectionAdapter;import org.eclipse.swt.events.SelectionEvent;import org.eclipse.swt.graphics.Image;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.FileDialog;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.Text;import org.eclipse.swt.widgets.ToolBar;import org.eclipse.swt.widgets.ToolItem;public class SWTTextEditor { Display d; Shell s; SWTTextEditor() { d = new Display(); s = new Shell(d, SWT.CLOSE); s.setSize(500, 500); s.setImage(new Image(d, "C:\\picture\\folder_black.jpg")); s.setText("SWT Text Editor"); final ToolBar bar = new ToolBar(s, SWT.HORIZONTAL); final Text t = new Text(s, SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.WRAP | SWT.BORDER); // create images for toolbar buttons final Image saveIcon = new Image(d, "C:\\picture\\folder_black.jpg"); final Image openIcon = new Image(d, "C:\\picture\\folder_black.jpg"); final Image childIcon = new Image(d, "C:\\picture\\folder_black.jpg"); final Image cutIcon = new Image(d, "C:\\picture\\folder_black.jpg"); final Image copyIcon = new Image(d, "C:\\picture\\folder_black.jpg"); final Image pasteIcon = new Image(d, "C:\\picture\\folder_black.jpg"); // create ToolBar and ToolItems final ToolItem openToolItem = new ToolItem(bar, SWT.PUSH); final ToolItem saveToolItem = new ToolItem(bar, SWT.PUSH); final ToolItem sep1 = new ToolItem(bar, SWT.SEPARATOR); final ToolItem cutToolItem = new ToolItem(bar, SWT.PUSH); final ToolItem copyToolItem = new ToolItem(bar, SWT.PUSH); final ToolItem pasteToolItem = new ToolItem(bar, SWT.PUSH); // create the menu system final Menu m = new Menu(s, SWT.BAR); final MenuItem file = new MenuItem(m, SWT.CASCADE); final Menu filemenu = new Menu(s, SWT.DROP_DOWN); final MenuItem openMenuItem = new MenuItem(filemenu, SWT.PUSH); final MenuItem saveMenuItem = new MenuItem(filemenu, SWT.PUSH); final MenuItem separator = new MenuItem(filemenu, SWT.SEPARATOR); final MenuItem exitMenuItem = new MenuItem(filemenu, SWT.PUSH); final MenuItem edit = new MenuItem(m, SWT.CASCADE); final Menu editmenu = new Menu(s, SWT.DROP_DOWN); final MenuItem cutMenuItem = new MenuItem(editmenu, SWT.PUSH); final MenuItem copyMenuItem = new MenuItem(editmenu, SWT.PUSH); final MenuItem pasteMenuItem = new MenuItem(editmenu, SWT.PUSH); final MenuItem help = new MenuItem(m, SWT.CASCADE); final Menu helpmenu = new Menu(s, SWT.DROP_DOWN); final MenuItem aboutMenuItem = new MenuItem(helpmenu, SWT.PUSH); // create reusable named inner classes for SelectionListeners class Open extends SelectionAdapter { public void widgetSelected(SelectionEvent event) { FileDialog fileDialog = new FileDialog(s, SWT.OPEN); fileDialog.setText("Open"); fileDialog.setFilterPath("C:/"); String[] filterExt = { "*.txt", "*.*" }; fileDialog.setFilterExtensions(filterExt); String selected = fileDialog.open(); if (selected == null) return; // code here to open the file and display FileReader file = null; try { file = new FileReader(selected); } catch (FileNotFoundException e) { MessageBox messageBox = new MessageBox(s, SWT.ICON_ERROR | SWT.OK); messageBox.setMessage("Could not open file."); messageBox.setText("Error"); messageBox.open(); return; } BufferedReader fileInput = new BufferedReader(file); String text = null; StringBuffer sb = new StringBuffer(); try { do { if (text != null) sb.append(text); } while ((text = fileInput.readLine()) != null); } catch (IOException e1) { MessageBox messageBox = new MessageBox(s, SWT.ICON_ERROR | SWT.OK); messageBox.setMessage("Could not write to file."); messageBox.setText("Error"); messageBox.open(); return; } t.setText(sb.toString()); } } class Save extends SelectionAdapter { public void widgetSelected(SelectionEvent event) { FileDialog fileDialog = new FileDialog(s, SWT.SAVE); fileDialog.setText("Save"); fileDialog.setFilterPath("C:/"); String[] filterExt = { "*.txt", "*.*" }; fileDialog.setFilterExtensions(filterExt); String selected = fileDialog.open(); if (selected == null) return; File file = new File(selected); try { FileWriter fileWriter = new FileWriter(file); fileWriter.write(t.getText()); fileWriter.close(); } catch (IOException e) { MessageBox messageBox = new MessageBox(s, SWT.ICON_ERROR | SWT.OK); messageBox.setMessage("File I/O Error."); messageBox.setText("Error"); messageBox.open(); return; } } } class Cut extends SelectionAdapter { public void widgetSelected(SelectionEvent event) { t.cut(); } } class Copy extends SelectionAdapter { public void widgetSelected(SelectionEvent event) { t.copy(); } } class Paste extends SelectionAdapter { public void widgetSelected(SelectionEvent event) { t.paste(); } } // set the size and location of the user interface widgets bar.setSize(500, 55); bar.setLocation(10, 0); t.setBounds(0, 56, 490, 395); // Configure the ToolBar openToolItem.setImage(openIcon); openToolItem.setText("Open"); openToolItem.setToolTipText("Open File"); saveToolItem.setImage(saveIcon); saveToolItem.setText("Save"); saveToolItem.setToolTipText("Save File"); cutToolItem.setImage(cutIcon); cutToolItem.setText("Cut"); cutToolItem.setToolTipText("Cut"); copyToolItem.setImage(copyIcon); copyToolItem.setText("Copy"); copyToolItem.setToolTipText("Copy"); pasteToolItem.setImage(pasteIcon); pasteToolItem.setText("Paste"); pasteToolItem.setToolTipText("Paste"); // add SelectionListeners to the toolbar buttons openToolItem.addSelectionListener(new Open()); saveToolItem.addSelectionListener(new Save()); cutToolItem.addSelectionListener(new Cut()); copyToolItem.addSelectionListener(new Copy()); pasteToolItem.addSelectionListener(new Paste()); // Configure the menu items file.setText("&File"); file.setMenu(filemenu); openMenuItem.setText("&Open\tCTRL+O"); openMenuItem.setAccelerator(SWT.CTRL + 'O'); saveMenuItem.setText("&Save\tCTRL+S"); saveMenuItem.setAccelerator(SWT.CTRL + 'S'); exitMenuItem.setText("E&xit"); edit.setText("&Edit"); edit.setMenu(editmenu); cutMenuItem.setText("&Cut"); copyMenuItem.setText("Co&py"); pasteMenuItem.setText("&Paste"); help.setText("&Help"); help.setMenu(helpmenu); aboutMenuItem.setText("&About"); // add SelectionListeners for the menu items openMenuItem.addSelectionListener(new Open()); saveMenuItem.addSelectionListener(new Save()); exitMenuItem.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { System.exit(0); } }); cutMenuItem.addSelectionListener(new Cut()); copyMenuItem.addSelectionListener(new Copy()); pasteMenuItem.addSelectionListener(new Paste()); aboutMenuItem.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { AboutDialog ad = new AboutDialog(s); ad.open(); } }); s.setMenuBar(m); s.open(); while (!s.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); } // include a main method to make the class executable public static void main(String[] args) { SWTTextEditor ste = new SWTTextEditor(); }}package swt.all.TextEditor;import org.eclipse.swt.SWT;import org.eclipse.swt.events.SelectionAdapter;import org.eclipse.swt.events.SelectionEvent;import org.eclipse.swt.widgets.Button;import org.eclipse.swt.widgets.Dialog;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Label;import org.eclipse.swt.widgets.Shell;public class AboutDialog extends Dialog { public AboutDialog(Shell parent) { super(parent); } public void open() { Shell parent = getParent(); final Shell dialog = new Shell(parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); dialog.setSize(200, 100); dialog.setText("About"); final Label l = new Label(dialog, SWT.NONE); l.setText("An SWT Text Editor"); l.setBounds(43, 20, 100, 20); Button b = new Button(dialog, SWT.PUSH | SWT.BORDER); b.setText("OK"); b.setBounds(80, 45, 40, 25); b.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { dialog.dispose(); } }); dialog.open(); Display display = parent.getDisplay(); while (!dialog.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } }}][/code] jdk的示例很好路径:jdk1.6.0_10\demo\jfc 如果是和平台有关,则是Easyeclipse 菜鸟求=助 Java Swing添加滚动条的问题 java I/O基础知识,望各位大侠不吝赐教,在线等... 新手,编译报错,谢谢! =======帮忙解决个关于远程控制方面的问题,100分给你======= 超菜问题 不问不行呀 新手的小程序遇到点困难~~~急求助 关于图标的问题 在java中怎么把大写的字母转换成小写呢?(char型的) 请advanced(超越)来拿分 我的老是提示一下错误,帮忙看看是为什么? java 形参,实参 在内存中分配问题
JMenuBar fileBar = new JMenuBar();//设置菜单栏
JMenu fileMenu = new JMenu("文件");//给菜单栏加菜单
JMenuItem exitMenu = new JMenuItem("退出");
fileBar.add(fileMenu);
fileMenu.add(exitMenu);
mainFrame.setJMenuBar(fileBar);增加菜单响应:exitMenu.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
mainFrame.dispose();
}
});
对,就是显示在主窗口,不用另弹出一个窗口,和eclipse一样。
package Menu;
import java.awt.*;
import java.awt.event.*;
public class TestMenuBar {
MenuBar mb=new MenuBar();
Menu filem=new Menu("文件");
Menu editm=new Menu("编辑");
Menu geshim=new Menu("格式");
Menu chakanm=new Menu("查看");
Menu helpm=new Menu("帮助");
MenuItem filem1=new MenuItem("新建");
MenuItem filem2=new MenuItem("打开");
MenuItem filem3=new MenuItem("保存");
MenuItem filem4=new MenuItem("另存为");
MenuItem filem5=new MenuItem("页面设置");
MenuItem filem6=new MenuItem("打印");
MenuItem editm1=new MenuItem("撤消");
MenuItem editm2=new MenuItem("剪切");
MenuItem editm3=new MenuItem("复制");
MenuItem editm4=new MenuItem("粘贴");
MenuItem editm5=new MenuItem("删除");
MenuItem editm6=new MenuItem("查找");
MenuItem editm7=new MenuItem("查找下一个");
MenuItem editm8=new MenuItem("替换");
MenuItem editm9=new MenuItem("转到");
MenuItem editm10=new MenuItem("全选");
MenuItem editm11=new MenuItem("时间/日期");
MenuItem geshim2=new MenuItem("字体");
CheckboxMenuItem geshim1=new CheckboxMenuItem("自动换行",true);
CheckboxMenuItem ch=new CheckboxMenuItem("退出",true);
MenuItem chakanm1=new MenuItem("状态栏");
MenuItem helpm1=new MenuItem("帮助主题");
MenuItem helpm2=new MenuItem("关于记事本");
TestMenuBar()
{
Frame f=new Frame("简单的菜单");
f.setLayout(new FlowLayout());
mb.add(filem);
mb.add(editm);
mb.add(geshim);
mb.add(chakanm);
mb.add(helpm);
filem.add(filem1);
filem.add(filem2);
filem.add(filem3);
filem.add(filem4);
filem.addSeparator();
filem.add(filem5);
filem.add(filem6);
filem.addSeparator();
filem.add(ch);
editm.add(editm1);
editm.addSeparator();
editm.add(editm2);
editm.add(editm3);
editm.add(editm4);
editm.add(editm5);
editm.addSeparator();
editm.add(editm6);
editm.add(editm7);
editm.add(editm8);
editm.add(editm9);
editm.addSeparator();
editm.add(editm10);
editm.add(editm11);
geshim.add(geshim1);
geshim.add(geshim2);
chakanm.add(chakanm1);
helpm.add(helpm1);
helpm.addSeparator();
helpm.add(helpm2);
f.setMenuBar(mb);
f.setSize(300,100);
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
}
public static void main(String[]args)
{
new TestMenuBar();
}
}
贴一个简单记事本的完全代码,可以参考学习;
Java写界面最好还是用SWT、JFace这套东西,AWT,Swing用于做软件效果差(显示效果)
代码:
[code=package swt.all.TextEditor;import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.FileDialog;
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.Text;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;public class SWTTextEditor {
Display d;
Shell s; SWTTextEditor() {
d = new Display();
s = new Shell(d, SWT.CLOSE);
s.setSize(500, 500);
s.setImage(new Image(d, "C:\\picture\\folder_black.jpg"));
s.setText("SWT Text Editor");
final ToolBar bar = new ToolBar(s, SWT.HORIZONTAL);
final Text t = new Text(s, SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL
| SWT.WRAP | SWT.BORDER);
// create images for toolbar buttons
final Image saveIcon = new Image(d, "C:\\picture\\folder_black.jpg");
final Image openIcon = new Image(d, "C:\\picture\\folder_black.jpg");
final Image childIcon = new Image(d, "C:\\picture\\folder_black.jpg");
final Image cutIcon = new Image(d, "C:\\picture\\folder_black.jpg");
final Image copyIcon = new Image(d, "C:\\picture\\folder_black.jpg");
final Image pasteIcon = new Image(d, "C:\\picture\\folder_black.jpg"); // create ToolBar and ToolItems
final ToolItem openToolItem = new ToolItem(bar, SWT.PUSH);
final ToolItem saveToolItem = new ToolItem(bar, SWT.PUSH);
final ToolItem sep1 = new ToolItem(bar, SWT.SEPARATOR);
final ToolItem cutToolItem = new ToolItem(bar, SWT.PUSH);
final ToolItem copyToolItem = new ToolItem(bar, SWT.PUSH);
final ToolItem pasteToolItem = new ToolItem(bar, SWT.PUSH); // create the menu system
final Menu m = new Menu(s, SWT.BAR);
final MenuItem file = new MenuItem(m, SWT.CASCADE);
final Menu filemenu = new Menu(s, SWT.DROP_DOWN);
final MenuItem openMenuItem = new MenuItem(filemenu, SWT.PUSH);
final MenuItem saveMenuItem = new MenuItem(filemenu, SWT.PUSH);
final MenuItem separator = new MenuItem(filemenu, SWT.SEPARATOR);
final MenuItem exitMenuItem = new MenuItem(filemenu, SWT.PUSH);
final MenuItem edit = new MenuItem(m, SWT.CASCADE);
final Menu editmenu = new Menu(s, SWT.DROP_DOWN);
final MenuItem cutMenuItem = new MenuItem(editmenu, SWT.PUSH);
final MenuItem copyMenuItem = new MenuItem(editmenu, SWT.PUSH);
final MenuItem pasteMenuItem = new MenuItem(editmenu, SWT.PUSH);
final MenuItem help = new MenuItem(m, SWT.CASCADE);
final Menu helpmenu = new Menu(s, SWT.DROP_DOWN);
final MenuItem aboutMenuItem = new MenuItem(helpmenu, SWT.PUSH); // create reusable named inner classes for SelectionListeners
class Open extends SelectionAdapter {
public void widgetSelected(SelectionEvent event) {
FileDialog fileDialog = new FileDialog(s, SWT.OPEN);
fileDialog.setText("Open");
fileDialog.setFilterPath("C:/");
String[] filterExt = { "*.txt", "*.*" };
fileDialog.setFilterExtensions(filterExt);
String selected = fileDialog.open();
if (selected == null)
return;
// code here to open the file and display
FileReader file = null;
try {
file = new FileReader(selected);
} catch (FileNotFoundException e) {
MessageBox messageBox = new MessageBox(s, SWT.ICON_ERROR
| SWT.OK);
messageBox.setMessage("Could not open file.");
messageBox.setText("Error");
messageBox.open();
return;
}
BufferedReader fileInput = new BufferedReader(file);
String text = null;
StringBuffer sb = new StringBuffer();
try {
do {
if (text != null)
sb.append(text);
} while ((text = fileInput.readLine()) != null);
} catch (IOException e1) {
MessageBox messageBox = new MessageBox(s, SWT.ICON_ERROR
| SWT.OK);
messageBox.setMessage("Could not write to file.");
messageBox.setText("Error");
messageBox.open();
return;
}
t.setText(sb.toString());
}
} class Save extends SelectionAdapter {
public void widgetSelected(SelectionEvent event) {
FileDialog fileDialog = new FileDialog(s, SWT.SAVE);
fileDialog.setText("Save");
fileDialog.setFilterPath("C:/");
String[] filterExt = { "*.txt", "*.*" };
fileDialog.setFilterExtensions(filterExt);
String selected = fileDialog.open();
if (selected == null)
return; File file = new File(selected);
try {
FileWriter fileWriter = new FileWriter(file);
fileWriter.write(t.getText());
fileWriter.close();
} catch (IOException e) {
MessageBox messageBox = new MessageBox(s, SWT.ICON_ERROR
| SWT.OK);
messageBox.setMessage("File I/O Error.");
messageBox.setText("Error");
messageBox.open();
return;
}
}
} class Cut extends SelectionAdapter {
public void widgetSelected(SelectionEvent event) {
t.cut();
}
} class Copy extends SelectionAdapter {
public void widgetSelected(SelectionEvent event) {
t.copy();
}
} class Paste extends SelectionAdapter {
public void widgetSelected(SelectionEvent event) {
t.paste();
}
}
// set the size and location of the user interface widgets
bar.setSize(500, 55);
bar.setLocation(10, 0);
t.setBounds(0, 56, 490, 395); // Configure the ToolBar
openToolItem.setImage(openIcon);
openToolItem.setText("Open");
openToolItem.setToolTipText("Open File");
saveToolItem.setImage(saveIcon);
saveToolItem.setText("Save");
saveToolItem.setToolTipText("Save File");
cutToolItem.setImage(cutIcon);
cutToolItem.setText("Cut");
cutToolItem.setToolTipText("Cut");
copyToolItem.setImage(copyIcon);
copyToolItem.setText("Copy");
copyToolItem.setToolTipText("Copy");
pasteToolItem.setImage(pasteIcon);
pasteToolItem.setText("Paste");
pasteToolItem.setToolTipText("Paste"); // add SelectionListeners to the toolbar buttons
openToolItem.addSelectionListener(new Open());
saveToolItem.addSelectionListener(new Save());
cutToolItem.addSelectionListener(new Cut());
copyToolItem.addSelectionListener(new Copy());
pasteToolItem.addSelectionListener(new Paste()); // Configure the menu items
file.setText("&File");
file.setMenu(filemenu);
openMenuItem.setText("&Open\tCTRL+O");
openMenuItem.setAccelerator(SWT.CTRL + 'O');
saveMenuItem.setText("&Save\tCTRL+S");
saveMenuItem.setAccelerator(SWT.CTRL + 'S');
exitMenuItem.setText("E&xit");
edit.setText("&Edit");
edit.setMenu(editmenu);
cutMenuItem.setText("&Cut");
copyMenuItem.setText("Co&py");
pasteMenuItem.setText("&Paste");
help.setText("&Help");
help.setMenu(helpmenu);
aboutMenuItem.setText("&About"); // add SelectionListeners for the menu items
openMenuItem.addSelectionListener(new Open());
saveMenuItem.addSelectionListener(new Save());
exitMenuItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
System.exit(0);
}
});
cutMenuItem.addSelectionListener(new Cut());
copyMenuItem.addSelectionListener(new Copy());
pasteMenuItem.addSelectionListener(new Paste());
aboutMenuItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
AboutDialog ad = new AboutDialog(s);
ad.open();
}
});
s.setMenuBar(m);
s.open();
while (!s.isDisposed()) {
if (!d.readAndDispatch())
d.sleep();
}
d.dispose();
} // include a main method to make the class executable
public static void main(String[] args) {
SWTTextEditor ste = new SWTTextEditor();
}
}
package swt.all.TextEditor;import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;public class AboutDialog extends Dialog {
public AboutDialog(Shell parent) {
super(parent);
} public void open() {
Shell parent = getParent();
final Shell dialog = new Shell(parent, SWT.DIALOG_TRIM
| SWT.APPLICATION_MODAL);
dialog.setSize(200, 100);
dialog.setText("About");
final Label l = new Label(dialog, SWT.NONE);
l.setText("An SWT Text Editor");
l.setBounds(43, 20, 100, 20);
Button b = new Button(dialog, SWT.PUSH | SWT.BORDER);
b.setText("OK");
b.setBounds(80, 45, 40, 25);
b.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
dialog.dispose();
}
});
dialog.open();
Display display = parent.getDisplay();
while (!dialog.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
}
][/code]
路径:jdk1.6.0_10\demo\jfc