2014-04-11 3 views
0
import javax.swing.JButton; 
    import javax.swing.JPanel; 


    public class EventButton extends MainLayout{ 
     //create the string for the button's text 
     private String button_text; 
     private JButton event_button; 
     private JPanel event_panel; 



     public EventButton(){ 
      //initialize the button text 
      button_text = "Set Event"; 
      event_button = new JButton(); 
      event_panel = new JPanel(); 
      event_button.setText(button_text); 
      event_panel.add(event_button); 
      add(event_panel); 



     } 
} 


import javax.swing.JFrame; 

public class MainLayout extends JFrame{ 
    public MainLayout(){ 
     EventButton eb = new EventButton(); 
    } 
} 


import javax.swing.*; 
public class Tester { 
    public static void main(String[] args){ 
     MainLayout frame = new MainLayout(); 
     frame.setSize(300, 300); 
     frame.setVisible(true); 
    } 

} 

이들은 세 개의 개별 클래스입니다. 지금은 MainLayout 프레임에 버튼을 추가 할 수 있기를 원하지만 알아낼 수는 없습니다. 이 코드를 실행하면 오류가 발생하고 main 함수 내부에서 버튼의 인스턴스를 만드는 것과 같은 여러 가지 작업을 시도했지만 코드는 컴파일되지만 프레임 만 팝업됩니다.별도의 클래스에서 프레임에 버튼을 추가하는 방법은 무엇입니까?

답변

0
대신 (어쨌든 별도의 인스턴스가 될 것이기 때문에 작동하지 않습니다) EventButtonMainLayout을 확장하는 데 같은 소리

, 싶은 것은 이것이다 :

// Change the EventButton() constructor: 
public EventButton(Container addTo) { 
    ... 
    addTo.add(event_panel); 
} 

// Change your MainLayout() constructor: 
public MainLayout(){ 
    EventButton eb = new EventButton(getContentPane()); 
} 
+0

생성자 EventButton (컨테이너)입니다 정의되지 않은 – user3525098

관련 문제