12.7 菜单

p { margin-bottom: 0.21cm; }

一个完整的菜单系统有菜单条,菜单和菜单项组成

Java 中与菜单相关的类主要有MenuBar (菜单条),Menu( 菜单),MenuItem (菜单项)

setActionCommand 方法是为菜单设置类似于dephiname 的值

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

}

}

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值