更新类的Jpanel

时间:2010-03-29 22:00:58

标签: java oop jpanel

关于使用jpanel的一些建议 - 我是java的新手,并且使用GUI元素。

基本上我很好奇的是,如果我可以在一个类中设置一个Jpanel,然后以某种方式将标签等添加到该容器中,但是从另一个类中添加。

这可能吗?或者我必须在一个类中设置整个GUI,但是如果我想更新我在另一个类的主类中设置的那些字段,我想我会遇到同样的问题吗?

道歉我真的没有任何代码可以在这里展示 - 我只是想让这个想法得以实现,如果可能的话,在我继续之前做好准备。我甚至不确定这是否可行。任何建议都将不胜感激。

由于

1 个答案:

答案 0 :(得分:3)

只要你有对JPanel的引用,你就可以通过在JPanel上调用add(JComponent comp)来添加你想要的任何GUI元素。

所以,你可以这样做:

class Panel extends JPanel{

    ...    

}

class Main{

    public Main(JPanel thePanel){
        thePanel.add(new JButton("Hello"));
    }
}

这是你想要的吗?

如果您在类中设置了公共访问器方法,则还可以从其他类更新添加到面板的字段。所以在你的panel课程中,你有一个方法:

public JButton getButton(){
    return button;
}

然后您可以从任何类中访问该按钮,并引用您的面板类,如下所示:

panel.getButton().setText("Some text");

请注意,该按钮也可以公开,然后您可以直接调用该方法:panel.button.setText("Some text");但这不被认为是好的代码,因为它违反了一些一般的优秀OOP实践,这里没有提及