2013-07-09 4 views
2

나는 몇몇 자바를 알고 있지만, 나는 GUI 개발의 모든 유형을하는 것에 익숙하다. 내가 한 일 중 대부분은 터미널을 통해 실행되는 작은 프로그램이었습니다. 나는 젖은 내 발을 얻을려고으로 어느 경우 JFrame에 여러 개의 패널 추가하기

는 다음 코드와 자신이 붙어 발견

public class MyGui { 

    public static void main(String[] args) { 
     JFrame frame = new JFrame("My Frame"); 
     JPanel leftPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); 
     JPanel centerPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); 

     JTextArea userField = new JTextArea("User:"); 
     userField.setEditable(false); 

     JTextArea user = new JTextArea("myuser"); 
     user.setEditable(true); 

     leftPanel.add(userField); 
     centerPanel.add(user); 

     frame.getContentPane().add(leftPanel); 
     frame.getContentPane().add(centerPanel); 
     frame.setVisible(true); 
     frame.setSize(500, 500); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 

I 좋겠 기본적으로의 왼쪽에있는 필드의 값과 테이블 창 같은 권리. 어떻게 할 수 있습니까?

내 현재 출력은 내 창 중앙에 myuser입니다.

+2

contentPane의 레이아웃을 설정해 보셨습니까? 아마 BorderLayout에 다음과 같은 것을 할 수 있습니다 :'frame.getContentPane(). add (leftPanel, BorderLayout.WEST);' –

답변

2

두 개의 패널이 필요하지 않습니다. 그냥 GridLayout과 하나 충분하다 :

public static void main(String [] args) { 
     JFrame frame = new JFrame("My Frame"); 
      JPanel panel = new JPanel(new GridLayout(1,2)); // split the panel in 1 rows and 2 cols 


      JTextArea userField = new JTextArea("User:"); 
      userField.setEditable(false); 

      JTextArea user = new JTextArea("myuser"); 
      user.setEditable(true); 

      panel.add(userField); 
      panel.add(user); 

      frame.getContentPane().add(panel); 

      frame.setVisible(true); 
      frame.setSize(500, 500); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 
2

귀하의 출력을 사용하면 컨테이너에 추가하는 마지막 패널 될 것 JFrame의 기본 레이아웃은 BorderLayout 때문이다.

따라서 getContentPane().add(panel)은 패널을 CENTER에 추가합니다. 또한 질문의 두 번째 부분은 다른 방법이 있습니다, 다시 사용하는 당신은 프레임이나 메인 패널에 GridLayout를 사용할 수 있으며 컨테이너에 패널을 추가하는 방법을 지정하지 Why are the contents of my JFrame not displaying correctly?

를 참조하십시오.

당신은 깊은 이해를 위해 LayoutManagers에 대해 더 자세히 읽고 싶습니다.

관련 문제