我想要做的是在框架内组织五个单独的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);

}

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

  1. Java main正确形参_Java application 中的主类需包含 main 方法,以下哪项是 main 方法的正确形参?( )...

    Java application 中的主类需包含 main 方法,以下哪项是 main 方法的正确形参?( ) 答:String ar[] 美国对德国的文化清洗活动持强烈的批评态度.() 答:√ 根据 ...

  2. java怎么调用存储函数_java中调用存储过程或存储函数的方法

    java中调用存储过程或存储函数的方法 1.调用存储过程:CallableStatement clstmt = null;try {clstmt = conn.prepareCall("{c ...

  3. java 申请不定长度数组_java中申请不定长度数组ArrayList的方法

    如下所示: import java.util.ArrayList; //java中申请不定长度数组 public class Test01 { public static void main(Stri ...

  4. java list 对象 json字符串_Java中Json字符串直接转换为对象的方法(包括多层List集合)...

    使用到的类:net.sf.json.JSONObject 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-b ...

  5. java 获取键盘点击_Java中获取键盘输入值的三种方法介绍

    程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这 ...

  6. JFrame(框架)中添加和设置JPanel(面板)的方法

       Swing 程序用JFrame 对象实现了它们的窗口.JFrame 类是AWT Frame 类的一个子类.它还加入了一些Swing 所独有的特性.与 Frame 的使用十分相似.唯一的区别在于, ...

  7. java 判断是否中文字符_java中判断字符串是否是中文的方法

    java中判断字符串是否是中文的方法 发布时间:2020-06-25 14:07:38 来源:亿速云 阅读:79 作者:Leah 本篇文章为大家展示了java判断字符串是否为中文的方法,代码简明扼要并 ...

  8. java 如何跳出if语句_java中跳出或终止if语句的方法

    1.break break:跳出当前循环:但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环.for (int i = 0; i < 10; i++) { if ...

  9. java 如何添加背景音乐_Java JFrame 中添加背景音乐方法

    在想让音乐开始播放的时候 调用该方法就可以,如:如果想在一打开JFrame的时候就播放,那么在JFrame的构造方法中添加该方法即可.以此类推. import java.applet.AudioCli ...

最新文章

  1. ACM—各种模拟 总结(字符串,尺取法,数学问题)习题汇总
  2. python 画蝴蝶_ProE常用曲线方程:Python Matplotlib 版本代码(蝴蝶曲线)
  3. C++ Primer 5th笔记(chap 12 动态内存)weak_ptr
  4. Java的if判断对象为null时,null放在比较运算符的左边还是右边较好?
  5. php post 500 ajax,php – Laravel 5:Ajax Post 500(内部服务器错误)
  6. Echarts数据可视化series-effectscatter特效散点图,开发全解+完美注释
  7. webpack如何全局引入jquery和echarts?
  8. 能跑的东西,尽量继续跑,平稳过渡
  9. 基于ssm的宠物医院信息管理系统 java毕业设计源码介绍
  10. JavaWeb快速入门(一)——新建JavaWeb项目
  11. Ubuntu下,远程访问服务器,路径只显示最后打开的文件夹问题
  12. python 自动划分训练集和测试集
  13. WPE封包外挂教程(上)
  14. 2021-09-10ESSM, CVR预估到底要预估什么
  15. 平行时代的平行智能体系(王飞跃)
  16. 初识JavaScript,体验JS的美好
  17. 科技新品 | 富士胶片研发出全球最大容量数据流磁带;iGame发布内存新品“古德白”...
  18. 正则-完美的身份证以及真实姓名
  19. “影子公司” 汇润成功入主深航
  20. Whistle pc抓包,手机抓包,https抓包

热门文章

  1. 【逆强化学习-2】最大熵学习(Maximum Entropy Learning)
  2. ASP.NET MVC 阻止通过URL访问服务器上的静态资源文件
  3. Ubuntu作为服务器其tomcat被远程访问问题
  4. Windows下MySQL压缩包.zip的安装
  5. oracle9i 恢复数据库,Oracle9i RMAN备份及恢复步骤(zt)
  6. wifi 信道_WiFi网速太慢,四招就可以让无线网络变得顺畅
  7. 职称计算机技巧集锦,2014职称计算机考试《Excel》使用技巧集锦(4)
  8. foxmail地址簿怎么添加分组 foxmail地址簿新建分组的教程
  9. 搜狗输入法为什么按空格出字 搜狗输入法按空格出字怎么设置
  10. 谷歌浏览器如何更改语言