gpt4 book ai didi

java - 是否可以在不重置 JComponent 属性的情况下为 JComponent 设置操作?

转载 作者:行者123 更新时间:2023-11-29 05:51:40 24 4
gpt4 key购买 nike

我已经阅读了 oracle 提供的 Java trail,他们说对象属性设置为与操作属性相匹配。我想知道这是否是一组有限的共享属性,或者是否将 Action 强制转换为与您将操作设置为的对象相同的类。

我的另一个问题是...是否可以将 Action 设置为与我为其设置的 Component 具有相同的属性,以便它不会重置所有内容?我能想到的唯一解决方法是在对对象执行任何操作之前为对象设置操作,或者通过操作方法或构造函数传递对象并在此时设置您想要的所有值。我希望我可以稍后在程序中设置操作而不会打扰任何东西,这样会更方便。

例子...

JMenuItem myItem = new JMenuItem("someText");
myItem.setAction(myAction);// Clears the text from my menu item which is the problem

谢谢

最佳答案

我:

Why not have "someText" associated with the Action from the get-go?

你:

How do I do that?

解决方法:

  // can also pass in an icon to this constructor as a 2nd parameter
Action myAction = new AbstractAction("Some Text") {
{
// set properties here including mnemmonic
putValue(MNEMONIC_KEY, KeyEvent.VK_S);
}

@Override
public void actionPerformed(ActionEvent e) {
// action initiated code goes here
}
};

您还可以通过 Action 的 NAME 属性设置按钮的文本:

  Action myAction = new AbstractAction() {
{
putValue(NAME, "Some Text");
putValue(MNEMONIC_KEY, KeyEvent.VK_S);
}

// ... etc...
};

关于java - 是否可以在不重置 JComponent 属性的情况下为 JComponent 设置操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13653491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com