p { margin-bottom: 0.21cm; }
一个完整的菜单系统有菜单条,菜单和菜单项组成
Java 中与菜单相关的类主要有MenuBar (菜单条),Menu( 菜单),MenuItem (菜单项)
setActionCommand 方法是为菜单设置类似于dephi 的name 的值
ActionListener 接口用于处理组件的事件监听器
ActionListener 。 getActionCommand() 用于返回发生事件的事件源 按钮名称
菜单操作实例
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( "stting" );
CheckboxMenuItem fileM5 = new CheckboxMenuItem( "Quit" , true ) ;
public TestMenuBar() {
// TODO Auto-generated constructor stub
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 m1 = new MenuListener();
printM1 .addActionListener(m1);
printM2 .addActionListener(m1);
this .setMenuBar( menuBar );
addWindowListener( new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
dispose();
System. exit (0);
}
});
}
public static void main(String[] args) {
TestMenuBar testMenuBar = new TestMenuBar();
testMenuBar.setSize(400, 400);
testMenuBar.setVisible( true );
}
}
事件监听器
public class MenuListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getActionCommand().equals( "preview" )){
System. out .println( "doing preview" );
} else if (e.getActionCommand().equals( "stting" )){
System. out .println( "doding setting" );
}
}
}