如何将JPanel作为参数传递给方法?

时间:2017-01-21 17:20:12

标签: java parameters jframe jpanel parameter-passing

我问一下。 我在Netbeans的一个java项目中工作。我在JFrameForm中创建了一个JFrameForm(设计模式),有五(5)个JPanel。

我找到了一个方法来启用/禁用Jpanel中的所有组件。的工作原理。

private void changeState(){
    for(Component c : mypanel.getComponents()){
        c.setEnabled(false);
    }
}
//mypanel it's one of a five panels in JFrameForm.
//I would like pass all the JPanel as parameters

我正在尝试编写一个方法,我可以传递像参数一样,只是我调用方法时需要的JPanel。你能救我吗?

我试试这个,但是不行:

private void changeState(JPanel p){
    for(Component c : p.getComponents()){
        c.setEnabled(false);
    }
}

如果答案非常简单,我很抱歉。我是JAVA和这个社区的初学者。我希望你能帮助我。

1 个答案:

答案 0 :(得分:1)

但它确实有效!当我运行以下代码(包含您的方法)时,它给我2 x true,然后2 x false。所以方法很好。

public class Panelik extends JFrame {
    JPanel panel;
    JLabel label1, label2;

    public Panelik() {
        panel = new JPanel();
        label1 = new JLabel();
        label2 = new JLabel();
        panel.add(label1);
        panel.add(label2);

        System.out.println(label1.isEnabled());
        System.out.println(label2.isEnabled());

        changeState(panel);

        System.out.println(label1.isEnabled());
        System.out.println(label2.isEnabled());
    }

    public void changeState(JPanel p) {
        for(Component c : p.getComponents()) {
            c.setEnabled(false);
        }
    }

    public static void main(String[] args) {
        Panelik panelik = new Panelik();
    }
}