2017-01-21 97 views
0

讓我問。 我正在Netbeans的一個Java項目中工作。我在JFrameForm中創建了一個JFrameForm(設計模式),有五(5)個JPanel。如何將JPanel作爲參數傳遞給方法?

我發現了一種方法por啓用/禁用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 

我試着寫,我可以像傳遞參數的方法,只是,我需要的時候我invoced方法JPanel中。你可以幫我嗎?

我試試這個,但不工作:

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

對不起,如果答案是很容易的。我是JAVA和這個社區的初學者。我希望你能幫助我。

+0

你的方法的錯誤是什麼? –

+0

你打電話過得怎麼樣?你得到的結果是什麼? – MadProgrammer

+0

看來我錯誤地調用了傳遞給changeState()方法的參數。這是我第一週使用JAVA。這是一個非常棒的社區,非常感謝! 代碼有效! –

回答

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(); 
    } 
} 
+0

看來我錯誤地調用了傳遞給changeState()方法的參數。這是我第一週使用JAVA。這是一個非常棒的社區,非常感謝! 代碼有效!我測試你的代碼,工作正常!謝謝! –

相關問題