本帖最后由 sAS112UUUYY111 于 2010-01-28 10:46:46 编辑

解决方案 »

  1.   

    不是JMenu可以实现吗?难道不是GUI?
      

  2.   

    楼主是想问如何给窗体上添加菜单,并增加菜单响应吗?给窗体上添加菜单:  
    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();
    }
    });

      

  3.   


    对,就是显示在主窗口,不用另弹出一个窗口,和eclipse一样。
      

  4.   


    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(); 

    }
      

  5.   

    也可以用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]
      

  6.   

    jdk的示例很好
    路径:jdk1.6.0_10\demo\jfc
      

  7.   

    如果是和平台有关,则是Easyeclipse