2017-01-21 3 views
0

私に聞かせてください。 NetbeansのJavaプロジェクトで作業しています。私はJFrameFormの中にJFrameForm(デザインモード)を作成しました。そこには5つのJPanelがあります。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 

は、私は、ちょうど、パラメータと同様に、私は方法をinvocedとき、私は必要なのJPanelを渡すことができる方法を書いてみてください。手伝って頂けますか?

私はこれを試してみたが、動作しません:

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

答えは、それは非常に簡単だ場合はごめんなさい。私はJAVAとこのコミュニティで初心者です。あなたが私を助けることを願っています。

+0

あなたの方法のエラーは何ですか? –

+0

どうやってそれを呼んでいますか?あなたが得た結果は何ですか? – MadProgrammer

+0

私はchangeState()メソッドに渡されたパラメータを間違って呼び出すと思われます。 JAVAでの最初の1週間です。それは素晴らしいコミュニティです、ありがとう! コードが機能します! –

答えて

1

しかし、うまくいきます!私は次のコードを(あなたのメソッドを含む)を実行すると、それは私に2 x真、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での最初の1週間です。それは素晴らしいコミュニティです、ありがとう! コードが機能します!私はあなたのコードをテストし、うまく動作します!ありがとう! –

関連する問題