在一些关于使用 jpanel 的建议之后 - 我是 java 的新手并且在玩弄 GUI 元素。
基本上我很好奇的是,我是否可以在一个类中设置一个 Jpanel,然后以某种方式向该容器添加标签等,但来自另一个类。
这可能吗?或者我是否必须在一个类中设置整个 GUI,但我想我会遇到同样的问题,如果我想从另一个类更新我在主类中设置的那些字段?
抱歉,我真的没有任何可用于演示的代码 - 我只是想让这个想法继续下去,如果可能的话,在我继续之前先弄清楚。而且我什至不确定这是否可能。任何建议将不胜感激。
谢谢
最佳答案
只要您有对 JPanel 的引用,就可以通过在 JPanel 上调用 add(JComponent comp)
添加任何您想要的 GUI 元素。
所以,你可以这样做:
class Panel extends JPanel{
...
}
class Main{
public Main(JPanel thePanel){
thePanel.add(new JButton("Hello"));
}
}
这就是您要找的吗?
如果您在该类中设置了公共(public)访问器方法,您还可以更新从另一个类添加到面板的字段。所以在你的 panel
类中,你有一个方法:
public JButton getButton(){
return button;
}
然后您可以通过引用您的面板类从任何类访问按钮,如下所示:
panel.getButton().setText("Some text");
请注意,该按钮也可以是公开的,然后您可以直接调用该方法:panel.button.setText("Some text");
但这不是好的代码,因为它违反了一些一般的良好 OOP 实践,与此处无关。
关于java - 更新类的Jpanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2541574/