怎样可以实现按下“新建”子菜单就可以弹出一个窗口,就好像我们平时用的软件一样。还有“保存”子菜单的响应事件,应怎么做呢?

解决方案 »

  1.   

    在MenuItem"新建"中添加事件处理:addActionListener();在事件处理函数中new 一个你要显示出来的窗口就好了。
    java tutorial中有很好的例子:how to use menu
    http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html
      

  2.   

    我确实是按照楼上所说“在事件处理函数中new 一个你要显示出来的窗口”,但就是显示不出那窗口来。部分代码如下:
    if(itemName.equals("新建"))
    {
    newFile file =new newFile();
    }其中newFile.java源代码如下:
    import java.awt.*;
    import javax.swing.*;
    import java.sql.*;public class newFile extends JFrame
    {
    private JLabel title = new JLabel("Title:",SwingConstants.RIGHT);
    private JLabel describe = new JLabel("Describe:",SwingConstants.RIGHT);
    private JTextField textField;
    private JTextArea textArea;
    public newFile()
    {
        this.setTitle("新建文件");
        JPanel pane = new JPanel();
        pane.setLayout(new GridLayout(2,2));
        pane.add(title);
        pane.add(textField);
        pane.add(describe);
        pane.add(textArea);
        setContentPane(pane);
        pack();
        setVisible(true);    }}
    请问这些代码哪里错了?还有“保存”这个子菜单的响应事件应怎么做呢?
      

  3.   

    if(itemName.equals("新建"))
    {
    newFile file =new newFile();
    }
    你这是用的哪种事件处理?保存了这段代码能执行吗?你肯定是没看这上面的例子
    http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html
    这是sun官方的例子,看完后什么都明白了。
      

  4.   

    在addActionListener()函数里面写的
    if(itemName.equals("新建"))
    {
    newFile file =new newFile();
    }
    这个吗?不过判断的话一般用e.getSouce()==..来判断比较好