2017-01-21 15 views
0

Позвольте мне спросить. Я работаю в проекте Java в Netbeans. Я создал 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 

Я стараюсь писать метод, где я могу передать как параметр, так же, как JPanel, что мне нужно, когда я invoced метод. Вы можете мне помочь?

Я стараюсь, но не работают:

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. Это отличное сообщество, спасибо вам большое! Код работает! Я тестирую ваш код, отлично работает! Благодаря! –