因为一旦frame里的setVisible为true后,再向容器中添加组件,就显示不出来了 ?
所以我试了添加一个Button后,没办法显示出来 ?
如何在这代码中的菜单里按下preview,就会在主窗口中显示一个按钮出来 ?
package gui;
import java.awt.CheckboxMenuItem;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.event.MenuEvent;
import java.awt.event.*;
import java.awt.*;
public class TestMenuBar extends Frame {
MenuBar menubar = new MenuBar();
Menu fileM = new Menu("File");
Menu editM = new Menu("Edit");
Menu toolsM = new Menu("Tools");
Menu helpM = new Menu("Help");
MenuItem fileM1 = new MenuItem("New");
MenuItem fileM2 = new MenuItem("Open");
MenuItem fileM3 = new MenuItem("Save");
Menu fileM4 = new Menu("print");
MenuItem printM1 = new MenuItem("preview");
MenuItem printM2 = new MenuItem("setting");
CheckboxMenuItem fileM5 = new CheckboxMenuItem("Quit",true);
public TestMenuBar(){
menubar.add(fileM);
menubar.add(editM);
menubar.add(toolsM);
menubar.add(helpM);
fileM.add(fileM1);
fileM.add(fileM2);
fileM.add(fileM3);
fileM.add(fileM4);
fileM.addSeparator();
fileM.add(fileM5);
fileM4.add(printM1);
fileM4.add(printM2);
MenuListener ml = new MenuListener();
printM1.addActionListener(ml);
printM2.addActionListener(ml);
this.setMenuBar(menubar);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
});
}
public static void main(String[] args) {
TestMenuBar tt = new TestMenuBar();
tt.setSize(400,400);
tt.setVisible(true);
}
}
class MenuListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("preview")){
System.out.println("doing preview");
} else if (e.getActionCommand().equals("setting")){
System.out.println("doing setting");
}
}
}