将多个JPanel添加到JFrame

时间:2013-09-27 02:28:25

标签: java jframe jpanel computer-science

很难将JPanel添加到JFrame。我在Java上几乎全新,总是使用C ++ 我需要在一个框架内做4个面板。

这是我的代码,刚刚开始......

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(或任何布局)需要使用size..something来实现。我不确定自己一直在读书 http://docs.oracle.com/javase/tutorial/uiswing/layout/box.html

但我仍然没有完全理解。如果有人可以帮助我 谢谢!

1 个答案:

答案 0 :(得分:2)

您的代码失败,因为您直接添加到默认JFrame的{​​{1}}。您将BorderLayout设置为错误的面板。 您必须BoxLayout到您要添加的顶部组件(jframe),或者我更喜欢添加到jpanel而不是直接添加到jframe以完成您想要执行的操作。

示例:

setLayout()

顺便说一句,Java变量以lowerCase作为代码约定开始。