2013-09-27 5 views
0

JPanels를 JFrame에 추가하는 데 어려움을 겪고 있습니다. Java에서 거의 새로운, 항상 C++ 사용 하나의 프레임 안에 4 개의 패널을 배치해야합니다. 여기 JFrame에 다중 JPanels 추가

내 코드, 막 시작 오늘 ...입니다

package project2; 
import javax.swing.JOptionPane;  
import java.awt.FlowLayout; 
import javax.swing.JFrame;  
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.SwingConstants; 
import java.awt.Color; 
import java.awt.GridLayout; 
import java.awt.BorderLayout; 
import javax.swing.*; 
import java.awt.Container; 
import java.awt.Dimension; 

public class GUI extends JFrame 
{ 
    private JPanel Checks; //Panel to Hold Checks 
    private JPanel Transactions; 
    private JPanel History; 
    private JPanel Graphics; 
    private JLabel CLabel; 


    public GUI() 
    { 
     super ("UTB Check-In"); 
     JPanel Checks = new JPanel(); //set up panel 
     CLabel = new JLabel("Label with text"); 
     Checks.setBackground(Color.red); 
     Checks.setLayout(new BoxLayout(Checks,BoxLayout.LINE_AXIS)); 
     add(Checks); 


     // JPanel Transactions = new JPanel(); 
     // Transactions.setToolTipText("Electronic Transactions"); 
     //Transactions.setBackground(Color.blue); 
     // add(Transactions); 

    } 

} 

나는 파란색과 빨간색이 중간에 머물 나던이 경우, 서로 다른 색상으로 서로 거래 및 확인 한쪽을 넣어하려고했다 그 하나 또는 다른. 내 동료 중 한 명은 BoxLayout (또는 모든 레이아웃)이 그 크기에 맞게 구현되어야한다고 말했습니다. 내가 정말로 읽었는지 모르겠다. http://docs.oracle.com/javase/tutorial/uiswing/layout/box.html

그러나 나는 그것을 완전하게 이해하지 못한다. 누군가가 나를 도울 수 있다면 감사합니다!

답변

2

JFrame에 직접 추가하려는 이유는 코드가 일치하지 않습니다. 기본값은 BorderLayout입니다. BoxLayout을 잘못된 패널로 설정 중입니다. 추가 할 상단 구성 요소 (jframe)에 setLayout()이 있어야합니다. 또는 jframe에 직접 추가하는 대신 jpanel을 직접 추가하는 것이 좋습니다.

예 : 그런데

public GUI() 
{ 
    super ("UTB Check-In"); 

    JPanel parent = new JPanel(); 
    parent.setLayout(new BoxLayout(parent,BoxLayout.LINE_AXIS)); 
    add(parent); 

    JPanel Checks = new JPanel(); //set up panel 
    CLabel = new JLabel("Label with text"); 
    Checks.setBackground(Color.red); 
    parent.add(Checks); 


    JPanel Transactions = new JPanel(); 
    Transactions.setToolTipText("Electronic Transactions"); 
    Transactions.setBackground(Color.blue); 
    parent.add(Transactions); 

} 

, 자바 변수는 코드 규칙으로 소문자로 시작합니다.

+0

nachokk, 답장을 보내 주셔서 감사합니다. 그 날 날 "적절한 생성자"parent.setLayout (새 BoxLayout()); – Rafa579

+0

@ user2802861 내 편집을 참조하십시오. – nachokk

+0

고맙습니다! 나는 너를 사랑해. P jiji edit..no homo. 난 그냥 좌절했다 hehe – Rafa579