Java Gui菜单栏
我正在用Java练习我的gui技能,我一直在做菜单和菜单栏。 它们对我来说很有意义,但我有一个问题,那就是我在哪里可以学到更多关于它们的知识 我完成的基本菜单,ActionListener函数actionPerformed必须与菜单在同一个类中,菜单正在更改的项也必须与菜单在同一个类中 如果我想要一个影响JPanel的菜单,该菜单由另一个类的构造函数创建并放置在我的框架中,该怎么办。。我不确定菜单如何改变它的组成部分Java Gui菜单栏,java,swing,jpanel,jmenu,jmenubar,Java,Swing,Jpanel,Jmenu,Jmenubar,我正在用Java练习我的gui技能,我一直在做菜单和菜单栏。 它们对我来说很有意义,但我有一个问题,那就是我在哪里可以学到更多关于它们的知识 我完成的基本菜单,ActionListener函数actionPerformed必须与菜单在同一个类中,菜单正在更改的项也必须与菜单在同一个类中 如果我想要一个影响JPanel的菜单,该菜单由另一个类的构造函数创建并放置在我的框架中,该怎么办。。我不确定菜单如何改变它的组成部分 任何你们觉得有用的提示、提示或网站都会很好,提前谢谢。我发现将菜单栏操作包装在
任何你们觉得有用的提示、提示或网站都会很好,提前谢谢。我发现将菜单栏操作包装在
操作
对象中很有用。这包括:
AbstractAction
的子类,该类的数据是操作所作用的。然后为该操作定义一个getter,以便您的菜单构建代码可以获取它。您可以将操作
直接添加到菜单中-自动为其构建菜单项
动作的另一个优点是,可以在按钮、工具栏等中使用相同的动作
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());
}
}
class模型类{
int值;
Action incAction=新抽象操作(“增量”){
已执行的公共无效操作(){
值++;
设置启用(值<10);
}
};
公共行动getIncAction(){
回归行动;
}
}
类UIClass{
void buildMenu(){
JMenu菜单=新JMenu(“模型”);
menu.add(model.getIncAction());
}
}
我发现在操作
对象中包装菜单栏操作很有用。这包括:
AbstractAction
的子类,该类的数据是操作所作用的。然后为该操作定义一个getter,以便您的菜单构建代码可以获取它。您可以将操作
直接添加到菜单中-自动为其构建菜单项
动作的另一个优点是,可以在按钮、工具栏等中使用相同的动作
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());
}
}
class模型类{
int值;
Action incAction=新抽象操作(“增量”){
已执行的公共无效操作(){
值++;
设置启用(值<10);
}
};
公共行动getIncAction(){
回归行动;
}
}
类UIClass{
void buildMenu(){
JMenu菜单=新JMenu(“模型”);
menu.add(model.getIncAction());
}
}
试试这个试试这个我想你没有可以给我看的参考资料或例子吧?我查阅了AbstractAction和ActionListener的文档,但我不确定您的想法是如何实现的。我想您没有可以向我展示的参考资料或示例吧?我查阅了AbstractAction和ActionListener的文档,但我不确定您的想法是如何实现的。