2014-07-06 12 views
0

Java 프로그래밍에 대한 이해와 간단한 게임 만들기.별도의 클래스에서 jPanel 구성 요소 참조

2 개의 다른 '화면'이 포함 된 GUI를 만들고 싶습니다. 화면을 바꿀 수있는 가장 좋은 방법은 CardLayout을 사용하는 것입니다.

그래서 IntroPanel 또는 GamePanel을 모두 포함하는 컨테이너 패널이 있습니다. 나는 2 일에서 쇼 값을 변경할 수 있으며 보여주는 것 패널을 변경

contPanel.setLayout(cl); 
      contPanel.add(introPanel, "1"); 
      contPanel.add(gamePanel, "2"); 
      cl.show(contPanel, "1"); 

이렇게함으로써

.

잘 작동합니다. 제 질문은 인트로 패널에있는 jButton1을 어떻게 참조 할 수 있습니까?

public static void main(String[] args) {  
    boolean playAgain = true; 

    SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      JFrame GUI = new JFrame(); 

      GUI.setVisible(true); 
      GUI.setSize(500, 500); 
      GUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      CardLayout cl = new CardLayout(); 

      // Different Panels // 
      JPanel contPanel = new JPanel(); 
      JPanel introPanel = new IntroPanel(); 
      JPanel gamePanel = new GamePanel(); 
          introPanel.jLabel1.getText(); 

      // Card layout // 
      contPanel.setLayout(cl); 
      contPanel.add(introPanel, "1"); 
      contPanel.add(gamePanel, "2"); 
      cl.show(contPanel, "1"); 
      GUI.add(contPanel); 
     } 
    }); 

답변

0

내 생각 : 나는 (내가 패널을 교체 할 수 있습니다)이 클래스 내에서의 JButton에 있지만에서

코드

감사합니다,

마이크를 이벤트 처리기를 추가 할 introPanel은 JPanel을 확장합니다. 당신은 아마 Netbeans GUI 도구를 사용하여 jpanel1이 개인적인 인스턴스가되도록했습니다.

public JButton getJButton1() { 
    return jbutton1; 
} 

과 같은이 클래스에서 호출 : 먼저 introPanel 코드이 추가

JButton jbutton1 = introPanel.getJButton1();