2014-01-12 2 views
0

첫 번째 패널이 두 개의 나란히 배치 된 패널의 맨 위에있는 방식으로 3Panels을 JFrame에 정렬하려고합니다. 저는이 사이트에서 새로운 스크린 샷을 만들 수 없습니다.JFrame 내부의 JPanel 크기를 관리하는 방법

다음은 내 프로그램 코드입니다. 내가 여기에 뭔가 부족한지 물어보십시오.

package images; 
import javax.swing.*; 

import java.awt.Event.*; 
import java.awt.*; 

public class B1 extends JFrame{ 

public static final long serialVersionUID = 0L; 

public static void main(String[] args){ 

    new Display(); 

} 

} 

class Display extends JFrame{ 

public static final long serialVersionUID = 0L; 

private JButton Bnum1,Bnum2,Bnum3,Bnum4,Bnum5,Bnum6,Bnum7,Bnum8,Bnum9,Bnum0,clear,enter; 
private JLabel Laccount,Lpin,Lcash,Ltake; 
private JTextField Taccount, Tpin, Tcash,Ttake; 

public Display(){ 

    JFrame Frame = new JFrame(); 

    Frame.setTitle("ATM Graphic User Interface"); 
    Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    Frame.setVisible(true); 
    Frame.setSize(600, 400); 


    JPanel buttons = new JPanel(new GridLayout(4,4)); 
    Frame.add(buttons); 
    buttons.setVisible(true); 
    buttons.setBounds(40, 100, 200, 200); 

    JPanel upper = new JPanel(new GridLayout(2,2)); 
    Frame.add(upper); 
    upper.setVisible(true); 
    upper.setBounds(40, 20, 350, 50); 
    upper.setBackground(Color.cyan); 

    JPanel lower = new JPanel(new GridLayout(2,2)); 
    Frame.add(lower); 
    lower.setVisible(true); 
    lower.setBounds(270, 100,300, 50);; 
    lower.setBackground(Color.CYAN); 


    Bnum1 = new JButton("1"); 
    Bnum2 = new JButton("2"); 
    Bnum3 = new JButton("3"); 
    Bnum4 = new JButton("4"); 
    Bnum5 = new JButton("5"); 
    Bnum6 = new JButton("6"); 
    Bnum7 = new JButton("7"); 
    Bnum8 = new JButton("8"); 
    Bnum9 = new JButton("9"); 
    Bnum0 = new JButton("0"); 
    clear = new JButton("CLEAR"); 
    enter = new JButton("ENTER"); 
    Laccount = new JLabel("Account Number : "); 
    Lpin = new JLabel("Pin Number   :"); 
    Lcash = new JLabel("Transfer Cash"); 
    Ltake = new JLabel("Take ENV"); 
    Taccount = new JTextField(15); 
    Tpin = new JTextField(15); 
    Tcash = new JTextField(5); 
    Ttake = new JTextField(5); 

    clear.setMargin(new Insets(2,2,2,2)); 
    enter.setMargin(new Insets(2,2,2,2)); 

    buttons.add(Bnum1); 
    buttons.add(Bnum2); 
    buttons.add(Bnum3); 
    buttons.add(Bnum4); 
    buttons.add(Bnum5); 
    buttons.add(Bnum6); 
    buttons.add(Bnum7); 
    buttons.add(Bnum8); 
    buttons.add(Bnum9); 
    buttons.add(Bnum0); 
    buttons.add(clear); 
    buttons.add(enter); 
    upper.add(Laccount); 
    upper.add(Taccount); 
    upper.add(Lpin); 
    upper.add(Tpin); 
    lower.add(Lcash); 
    lower.add(Tcash); 
    lower.add(Ltake); 
    lower.add(Ttake); 



    Bnum1.addMouseListener(new java.awt.event.MouseAdapter() { 
     public void mouseEntered(java.awt.event.MouseEvent evt) { 
      Bnum1.setBackground(Color.cyan); 
     } 
     public void mouseExited(java.awt.event.MouseEvent evt) { 
      Bnum1.setBackground(UIManager.getColor("control")); 
     } 
    }); 
    Bnum2.addMouseListener(new java.awt.event.MouseAdapter() { 
     public void mouseEntered(java.awt.event.MouseEvent evt) { 
      Bnum2.setBackground(Color.cyan); 
     } 
     public void mouseExited(java.awt.event.MouseEvent evt) { 
      Bnum2.setBackground(UIManager.getColor("control")); 
     } 
    }); 
    Bnum3.addMouseListener(new java.awt.event.MouseAdapter() { 
     public void mouseEntered(java.awt.event.MouseEvent evt) { 
      Bnum3.setBackground(Color.cyan); 
     } 
     public void mouseExited(java.awt.event.MouseEvent evt) { 
      Bnum3.setBackground(UIManager.getColor("control")); 
     } 
    }); 
    Bnum4.addMouseListener(new java.awt.event.MouseAdapter() { 
     public void mouseEntered(java.awt.event.MouseEvent evt) { 
      Bnum4.setBackground(Color.cyan); 
     } 
     public void mouseExited(java.awt.event.MouseEvent evt) { 
      Bnum4.setBackground(UIManager.getColor("control")); 
     } 
    }); 
    Bnum5.addMouseListener(new java.awt.event.MouseAdapter() { 
     public void mouseEntered(java.awt.event.MouseEvent evt) { 
      Bnum5.setBackground(Color.cyan); 
     } 
     public void mouseExited(java.awt.event.MouseEvent evt) { 
      Bnum5.setBackground(UIManager.getColor("control")); 
     } 
    }); 
    Bnum6.addMouseListener(new java.awt.event.MouseAdapter() { 
     public void mouseEntered(java.awt.event.MouseEvent evt) { 
      Bnum6.setBackground(Color.cyan); 
     } 
     public void mouseExited(java.awt.event.MouseEvent evt) { 
      Bnum6.setBackground(UIManager.getColor("control")); 
     } 
    }); 
    Bnum7.addMouseListener(new java.awt.event.MouseAdapter() { 
     public void mouseEntered(java.awt.event.MouseEvent evt) { 
      Bnum7.setBackground(Color.cyan); 
     } 
     public void mouseExited(java.awt.event.MouseEvent evt) { 
      Bnum7.setBackground(UIManager.getColor("control")); 
     } 
    }); 
    Bnum8.addMouseListener(new java.awt.event.MouseAdapter() { 
     public void mouseEntered(java.awt.event.MouseEvent evt) { 
      Bnum8.setBackground(Color.cyan); 
     } 
     public void mouseExited(java.awt.event.MouseEvent evt) { 
      Bnum8.setBackground(UIManager.getColor("control")); 
     } 
    }); 
    Bnum9.addMouseListener(new java.awt.event.MouseAdapter() { 
     public void mouseEntered(java.awt.event.MouseEvent evt) { 
      Bnum9.setBackground(Color.cyan); 
     } 
     public void mouseExited(java.awt.event.MouseEvent evt) { 
      Bnum9.setBackground(UIManager.getColor("control")); 
     } 
    }); 
    Bnum0.addMouseListener(new java.awt.event.MouseAdapter() { 
     public void mouseEntered(java.awt.event.MouseEvent evt) { 
      Bnum0.setBackground(Color.cyan); 
     } 
     public void mouseExited(java.awt.event.MouseEvent evt) { 
      Bnum0.setBackground(UIManager.getColor("control")); 
     } 
    }); 
    clear.addMouseListener(new java.awt.event.MouseAdapter() { 
     public void mouseEntered(java.awt.event.MouseEvent evt) { 
      clear.setBackground(Color.cyan); 
     } 
     public void mouseExited(java.awt.event.MouseEvent evt) { 
      clear.setBackground(UIManager.getColor("control")); 
     } 
    }); 
    enter.addMouseListener(new java.awt.event.MouseAdapter() { 
     public void mouseEntered(java.awt.event.MouseEvent evt) { 
      enter.setBackground(Color.cyan); 
     } 
     public void mouseExited(java.awt.event.MouseEvent evt) { 
      enter.setBackground(UIManager.getColor("control")); 
     } 
    }); 










} 


} 
+1

으로

Frame.add(buttons); Frame.add(upper); Frame.add(lower); 

를 교체 LayoutManager

이 줄을 추가 적절한 사용하려고합니다. 오류를 재생산하는 가장 간단한 코드를 게시해야합니다. 그렇지 않으면 아무도 당신이 올린 모든 코드를 읽을 수 없으며 신속하게 답변을 얻지 못할 것입니다. –

답변

1

레이아웃 관리자를 사용해야합니다. 예를 들어 BoxLayout은 사용자의 필요에 맞습니다. Java Documenation about BoxLayout 이 사이트에는 시작해야 할 예제가 있습니다. 당신은 아마도 LayoutManagers를 처음 접했을 것입니다. 가장 간단한 LayoutManager로 놀아야합니다. FlowLayout FlowLayout은 문제의 해결책이 아니지만 LayoutManager의 개념을 이해하는 데 도움이됩니다.

편집 : 이전에 GridLayout에 대해 게시했습니다. 하지만 Component에서 여러 셀을 생성 할 수는 없습니다. 그래서 GridLayout은 당신이 원하는 것이 아닙니다.

+0

이것이 실제로 문제를 해결 한 경우이 답을 해결책으로 표시하십시오. –

2

이렇게하면 문제가 해결 될 수 있습니다. 그러나

Frame.setLayout(new BorderLayout()); 

당신은 가능한 한 질문의 응답을 쉽게 만들려고한다

Frame.add(buttons,BorderLayout.NORTH); 
Frame.add(upper,BorderLayout.WEST); 
Frame.add(lower,BorderLayout.EAST);