标签: abstract-action

Java:如何从AbstractAction对象引用GUI组件?

通常需要根据另一个GUI对象的状态更改其他GUI对象的行为.例如,当按下按钮时,标签应更改其名称.但是,当我使用AbstractAction对象时,JButton myButton = new JButton(myButtonAction);我需要引用继承自AbstractAction的对象中的GUI对象.我应该只是在GUI中创建AbstractAction对象,然后将所有必要的GUI引用传递给AbstractAction对象,还是可以认为是坏样式?

为了使它更具体:

// AbstractAction
   public class MyAction extends AbstractAction {
        public  MyAction(String name, 
                            String description, Integer mnemonic, JLabel) {
            super(name);
            putValue(SHORT_DESCRIPTION, description);
            putValue(MNEMONIC_KEY, mnemonic);
        }
        public void actionPerformed(ActionEvent e) {

                // do something     
            }
        }
    }

public class GUI{
   public Action myAction = null;

   public GUI(){     
        JLabel label = new JLabel("text");
        //This is not a good idea:
         myAction = new MyAction("some text" , desc, new Integer(KeyEvent.VK_Q), label);

        JButton myButton = new JButton(myAction);
   }
}
Run Code Online (Sandbox Code Playgroud)

java swing jbutton abstract-action

6
推荐指数
2
解决办法
3946
查看次数

如何在Swing中组织我的动作?

我目前正在替换我的匿名ActionListeners

new ActionListener() {
    @Override
    public void actionPerformed(final ActionEvent event) {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

使用表示操作的类文件:

public class xxxxxxxAction extends AbstractAction {
}
Run Code Online (Sandbox Code Playgroud)

但是,我的GUI能够执行很多操作(例如CreatePersonAction,RenamePersonAction,DeletePersonAction,SwapPeopleAction等).

有没有一种很好的方法将这些类组织成一个连贯的结构?

java swing actionlistener abstract-action

3
推荐指数
2
解决办法
940
查看次数

更改AbstractAction名称

我有一个JMenuItem限制为一个我可以使用的Action item.getAction().在构造Action时设置动作名称,例如使用匿名new AbstractAction(String text, ...).根据ResourceBundle和本地化信息设置文本字段.现在,如果我想更改本地化,我想更改Action.NAME字段,以便显示正确的本地化名称.我只能获得名称,例如使用item.getAction().NAME但不能更改字段,因为它是最终的.

我怎么能改变它的名字?

java swing label jmenuitem abstract-action

2
推荐指数
1
解决办法
2468
查看次数

为什么AbstractAction没有实现actionPerformed()?

AbstractAction实现接口Action,但是Action,有一个actionPerformed(ActionEvent e)继承自接口的方法 ActionListener
我知道类实现接口必须提供该接口中方法的所有实现
但是我发现没有实现actionPerformed(ActionEvent e)in AbstractAction,为什么?

java awt actionlistener abstract-action

1
推荐指数
2
解决办法
574
查看次数

标签 统计

abstract-action ×4

java ×4

swing ×3

actionlistener ×2

awt ×1

jbutton ×1

jmenuitem ×1

label ×1