java 多个 panel_java – 在JFrame中组织多个JPanel的好方法是...

我想要做的是在框架内组织五个单独的JPanel.输出应该是这样的:顶部会有一个面板.顶部面板正下方的两个面板垂直分割空间,然后另外两个面板水平分割剩余空间.

我无法弄清楚如何组织如上所述的面板,我认为这是因为我只是不知道正确的语法.所以任何帮助或建议都非常感谢这里是我迄今为止的代码.

import java.lang.String.*;

import java.lang.Exception.*;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Display extends JFrame implements ActionListener{

// instance variables

private static final int FRAME_WIDTH = 400;

private static final int FRAME_HEIGHT = 350;

private static final int FRAME_X_ORIGIN = 150;

private static final int FRAME_Y_ORIGIN = 150;

private static final int BUTTON_WIDTH = 90;

private static final int BUTTON_HEIGHT = 30;

private JButton readFile;

private JButton exit;

private JButton stats;

private JButton blank;

private JCheckBox avgHomeworkScore;

private JCheckBox avgTestScore;

private JCheckBox sdHomeworkScore;

private JCheckBox sdTestScore;

private JRadioButton buttonOne;

private JRadioButton buttonTwo;

private JRadioButton buttonThree;

private JRadioButton buttonFour;

private JPanel header;

private JPanel statistics;

private JPanel courses;

private JPanel display;

private JPanel action;

public static void main(String[] args){

Display frame = new Display();

frame.setVisible(true);

}

public Display(){

Container contentPane;

//Set the frame properties

setSize (FRAME_WIDTH, FRAME_HEIGHT);

setResizable (false);

setTitle ("CSCE155A Course Offerings Viewer");

setLocation (FRAME_X_ORIGIN, FRAME_Y_ORIGIN);

contentPane = getContentPane();

contentPane.setLayout(new GridLayout());

contentPane.setBackground( Color.white );

//header

//Create and Place the Buttons on the frame

readFile = new JButton("Read File");

readFile.setBounds(4, 285, BUTTON_WIDTH, BUTTON_HEIGHT);

exit = new JButton("Exit");

exit.setBounds(100, 285, BUTTON_WIDTH, BUTTON_HEIGHT);

stats = new JButton("Stats");

stats.setBounds(195, 285, BUTTON_WIDTH, BUTTON_HEIGHT);

blank = new JButton("Clear");

blank.setBounds(290, 285, BUTTON_WIDTH, BUTTON_HEIGHT);

action = new JPanel(new FlowLayout());

action.setBackground(Color.blue);

action.add(readFile);

action.add(exit);

action.add(stats);

action.add(blank);

contentPane.add(action);

//Register this frame as an Action listener of the buttons

readFile.addActionListener(this);

exit.addActionListener(this);

stats.addActionListener(this);

blank.addActionListener(this);

//Create and Place the checkboxes on the frame

avgHomeworkScore = new JCheckBox();

avgHomeworkScore.setMnemonic(KeyEvent.VK_H);

contentPane.add(avgHomeworkScore);

avgHomeworkScore.setSelected(true);

avgTestScore = new JCheckBox();

avgTestScore.setMnemonic(KeyEvent.VK_T);

avgTestScore.setSelected(true);

sdHomeworkScore = new JCheckBox();

sdHomeworkScore.setMnemonic(KeyEvent.VK_S);

sdHomeworkScore.setSelected(true);

sdTestScore = new JCheckBox();

sdTestScore.setMnemonic(KeyEvent.VK_D);

sdTestScore.setSelected(true);

statistics = new JPanel(new GridLayout(0,1));

contentPane.add(statistics);

statistics.add(avgHomeworkScore);

statistics.add(avgTestScore);

statistics.add(sdHomeworkScore);

statistics.add(sdTestScore);

avgHomeworkScore.addActionListener(this);

avgTestScore.addActionListener(this);

sdHomeworkScore.addActionListener(this);

sdTestScore.addActionListener(this);

//create the radio buttons

buttonOne = new JRadioButton();

buttonOne.setMnemonic(KeyEvent.VK_1);

buttonOne.setSelected(true);

buttonTwo = new JRadioButton();

buttonTwo.setMnemonic(KeyEvent.VK_2);

buttonThree = new JRadioButton();

buttonThree.setMnemonic(KeyEvent.VK_3);

buttonFour = new JRadioButton();

buttonFour.setMnemonic(KeyEvent.VK_4);

ButtonGroup group = new ButtonGroup();

group.add(buttonOne);

group.add(buttonTwo);

group.add(buttonThree);

group.add(buttonFour);

buttonOne.addActionListener(this);

buttonTwo.addActionListener(this);

buttonThree.addActionListener(this);

buttonFour.addActionListener(this);

courses = new JPanel(new GridLayout(0,1));

courses.setBackground(Color.blue);

courses.add(buttonOne);

courses.add(buttonTwo);

courses.add(buttonThree);

courses.add(buttonFour);

contentPane.add(courses);

//Exit program when the viewer is closed

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值