如何解决如何停用特定menuItem的方法?
| 我想以某种方式检查选择了哪个MenuItem,以便对于某些菜单按钮以不同的方式绘制网格。 我在包视图中的MainUI类中创建了菜单: 我也忘了提到创建菜单的代码在一个名为showContainers的方法中 // Create the game menu
menuGame = new JMenu( \"Game\" );
menuGame.setMnemonic( \'G\' );
menuBar.add( menuGame );
// Create the game menu
// Build a game menu items
//...Create 3x3 Game
menuGame3 = CreateMenuItem( menuGame,ITEM_RADIO,\"Create 3x3 Game\",null,\'3\',null );
//...Create 4x4 Game
menuGame4 = CreateMenuItem( menuGame,\"Create 4x4 Game\",\'4\',null );
//...Create 5x5 Game
menuGame5 = CreateMenuItem( menuGame,\"Create 5x5 Game\",\'5\',null );
//...Create 6x6 Game
menuGame6 = CreateMenuItem( menuGame,\"Create 6x6 Game\",\'6\',null );
//...Create 7x7 Game
menuGame7 = CreateMenuItem( menuGame,\"Create 7x7 Game\",\'7\',null );
//...Create 8x8 Game
menuGame8 = CreateMenuItem( menuGame,\"Create 8x8 Game\",\'8\',null );
//...Create 9x9 Game
menuGame9 = CreateMenuItem( menuGame,\"Create 9x9 Game\",\'9\',null );
ButtonGroup group = new ButtonGroup();
group.add(menuGame3);
group.add(menuGame4);
group.add(menuGame5);
group.add(menuGame6);
group.add(menuGame7);
group.add(menuGame8);
group.add(menuGame9);
public void addCreateGame3Listener(ActionListener createGameListener){
menuGame3.addActionListener(createGameListener);
}
public void addCreateGame4Listener(ActionListener createGameListener){
menuGame4.addActionListener(createGameListener);
}
public void addCreateGame5Listener(ActionListener createGameListener){
menuGame5.addActionListener(createGameListener);
}
public void addCreateGame6Listener(ActionListener createGameListener){
menuGame6.addActionListener(createGameListener);
}
public void addCreateGame7Listener(ActionListener createGameListener){
menuGame7.addActionListener(createGameListener);
}
public void addCreateGame8Listener(ActionListener createGameListener){
menuGame8.addActionListener(createGameListener);
}
public void addCreateGame9Listener(ActionListener createGameListener){
menuGame9.addActionListener(createGameListener);
}
这是我所做的修改的GameUI中的painComponent:
@Override
public void paintComponent(Graphics g){
highLightCage =false ;
super.paintComponent(g); //clear the off-screen bitmap
drawCells(g);
drawCages(g);
if( MainUI.menuGame3.isSelected()){
drawCageLabels(g);
}
drawLabels(g);
drawGameHint(g);
}
问题是我没有在MainUI类中将menuGame3声明为公共静态对象,并且无法引用他。
解决方法
调查actionListeners并查看本教程
, 给定不完整的代码(
CreateMenuItem
可以做什么?),我不确定我可以建议一个好的解决方案。但是我假设您有一堆3英镑,在这种情况下,您可以执行以下操作:
if ( !menuGame8.isSelected() && !menuGame9.isSelected() ) {
drawCageLabels();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。