Java Gui Menubars



我正在用Java练习我的gui技能,我一直在做菜单和菜单栏。它们对我来说很有意义,但我有一个问题,我在哪里可以了解更多关于它们的信息。

我所做的基本菜单,ActionListener函数actionPerformed必须与菜单在同一个类中,菜单正在更改的项目也必须与菜单位于同一类中。

What If I want to have a menu that affect a JPanel that is created by a constructor from other class and placed in my frame。。我不确定菜单如何改变它的组成部分。

你们发现任何有用的提示、提示或网站都会很棒,提前谢谢。

我发现在Action对象中包装菜单栏操作很有用。这封装了:

  1. 操作的名称和图标
  2. 如果启用或禁用
  3. (对于复选框操作)如果已选中
  4. 操作的键盘快捷键
  5. 动作监听器的实现

你可以在该操作作用于其数据的类中定义AbstractAction的一个子类。然后为该操作定义一个getter,这样你的菜单构建代码就可以获得它。你可以直接将Action添加到菜单中-MenuItem会自动为它构建。

动作的另一个优点是,相同的动作可以用于按钮、工具栏等。

class ModelClass {
   int value;
   Action incAction = new AbstractAction("Increment") {
      public void actionPerformed() {
         value++;
         setEnabled(value < 10);
      }
   };
   public Action getIncAction() {
      return incAction;
   }
}
class UIClass {
   void buildMenu() {
      JMenu menu = new JMenu("Model");
      menu.add(model.getIncAction());
   }
}

相关内容

  • 没有找到相关文章