java swing 布局_Java的Swing布局
一、流布局FlowLayout
默认地,自左向右逐个排列
当一行排满时,自动排到下一行
setPreferredSize():控制每个控件的显示高度和宽度
案例效果
MyFrame.java
packageswing布局;import javax.swing.*;import java.awt.*;public class MyFrame extendsJFrame {publicMyFrame(String title){super(title);
Container contentPane=getContentPane();//这里的参数设置的是对齐方式FlowLayout.LEFT左对齐
LayoutManager layout=newFlowLayout(FlowLayout.LEFT);
contentPane.setLayout(layout);
JLabel a1=new ColorfulLabel("1",Color.YELLOW);
JLabel a2=new ColorfulLabel("2",Color.GREEN);
JLabel a3=new ColorfulLabel("3",Color.LIGHT_GRAY);
JLabel a4=new ColorfulLabel("4",Color.CYAN);
JLabel a5=new ColorfulLabel("5",Color.WHITE);
contentPane.add(a1);
contentPane.add(a2);
contentPane.add(a3);
contentPane.add(a4);
contentPane.add(a5);//设置宽和高
a4.setPreferredSize(new Dimension(150,30));
}private static class ColorfulLabel extendsJLabel{publicColorfulLabel(String text,Color bgColor){super(text);
setOpaque(true);
setBackground(bgColor);
setPreferredSize(new Dimension(60,30));
setHorizontalAlignment(SwingConstants.CENTER);
}
}
}
SwingDemo.java
packageswing布局;import javax.swing.*;public classSwingDemo {private static voidCreateGUI(){
JFrame frame=new MyFrame("流布局");
frame.setSize(400,300);
frame.setVisible(true);
}public static voidmain(String[] args) {
SwingUtilities.invokeLater(newRunnable() {
@Overridepublic voidrun() {
CreateGUI();
}
});
}
}
二、边界布局BorderLayout
把容器分为上、下、左、右、中五个区域
setPreferredSize()
对于上下边界,可以调整高度
对于左右边界,可以调整宽度
运行结果
MyFrame2.java
packageswing布局;import javax.swing.*;import java.awt.*;public class MyFrame2 extendsJFrame {publicMyFrame2(String title){super(title);
Container contentPane=getContentPane();
contentPane.setLayout(newBorderLayout());
JLabel a1=new ColorfulLabel("1",Color.YELLOW);
JLabel a2=new ColorfulLabel("2",Color.GREEN);
JLabel a3=new ColorfulLabel("3",Color.LIGHT_GRAY);
JLabel a4=new ColorfulLabel("4",Color.CYAN);
JLabel a5=new ColorfulLabel("5",Color.WHITE);//五个区域
contentPane.add(a1,BorderLayout.PAGE_START);
contentPane.add(a2,BorderLayout.PAGE_END);
contentPane.add(a3,BorderLayout.LINE_START);
contentPane.add(a4,BorderLayout.LINE_END);
contentPane.add(a5,BorderLayout.CENTER);//设置宽和高
a1.setPreferredSize(new Dimension(0,80));
a3.setPreferredSize(new Dimension(100,0));
}private static class ColorfulLabel extendsJLabel{publicColorfulLabel(String text,Color bgColor){super(text);
setOpaque(true);
setBackground(bgColor);
setPreferredSize(new Dimension(60,30));
setHorizontalAlignment(SwingConstants.CENTER);
}
}
}
SwingDemo02.java
packageswing布局;import javax.swing.*;public classSwingDemo02 {private static voidCreateGUI(){
JFrame frame=new MyFrame2("边界布局");
frame.setSize(400,300);
frame.setVisible(true);
}public static voidmain(String[] args) {
SwingUtilities.invokeLater(newRunnable() {
@Overridepublic voidrun() {
CreateGUI();
}
});
}
}
三、卡片布局CardLayout
运行结果
通过切换下拉框的内容切换卡片
MyFrame3.java
packageswing布局;import javax.swing.*;import java.awt.*;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;public class MyFrame3 extendsJFrame {
JPanel cards=newJPanel();
JComboBox options=new JComboBox<>();publicMyFrame3(String title){super(title);//内容面板
Container contentPane=getContentPane();
contentPane.setLayout(newBorderLayout());//向下拉框列表添加内容
options.addItem("第一个面板");
options.addItem("第二个面板");//将下拉框添加至边界布局的顶部
contentPane.add(options,BorderLayout.PAGE_START);//将卡片布局添加至边界布局的center
contentPane.add(cards,BorderLayout.CENTER);//创建第一个面板
JPanel p1=newJPanel();
p1.add(new JButton("红"));
p1.add(new JButton("绿"));
p1.add(new JButton("蓝"));//创建第二个面板
JPanel p2=newJPanel();
p2.add(new JLabel("输入"));
p2.add(new JTextField(20));//将这两个面板添加到卡片布局中,其中的第二个参数为布局的名称,方便调用
cards.setLayout(newCardLayout());
cards.add(p1,"buttons");
cards.add(p2,"text");//添加事件响应
options.addItemListener(newItemListener() {
@Overridepublic voiditemStateChanged(ItemEvent e) {
ItemChange();
}
});
}private voidItemChange() {
CardLayout cardLayout=(CardLayout)cards.getLayout();int index=options.getSelectedIndex();
System.out.println(index);if (index==0){
cardLayout.show(cards,"buttons");
}else if(index==1){
cardLayout.show(cards,"text");
}
}
}
SwingDemo03.java
packageswing布局;import javax.swing.*;public classSwingDemo03 {private static voidCreateGUI(){
JFrame frame=new MyFrame3("卡片布局");
frame.setSize(400,300);
frame.setVisible(true);
}public static voidmain(String[] args) {
SwingUtilities.invokeLater(newRunnable() {
@Overridepublic voidrun() {
CreateGUI();
}
});
}
}
java swing 布局_Java的Swing布局相关推荐
- java group布局_Java的swing.GroupLayout布局管理器的使用方法和实例
/** * @author :陶伟基 ,微博:http://weibo.com/taoandtao * @date :2012/12/10 * @place:广州大学华软软件学院 */ importj ...
- java swing 示例_JAVA简单Swing图形界面应用演示样例
JAVA简单Swing图形界面应用演示样例 package org.rui.hello; import javax.swing.JFrame; /** * 简单的swing窗体 * @author l ...
- java魔兽猎人_Java基于Swing实现的打猎射击游戏代码
package Game; import static java.lang.Math.random; import java.awt.*; import java.awt.event.*; impor ...
- java国际象棋棋牌_java使用swing绘制国际象棋棋盘
本文实例为大家分享了java使用swing绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 1.完整代码 import java.awt.Color; import java.awt.Point; ...
- 用java画乌龟_java用swing画可以行走的乌龟
代码如下: import java.awt.Color; import java.awt.Graphics; import java.awt.event.KeyEvent; import java.a ...
- java group布局_Java 的swing.GroupLayout布局管理器的使用方法和实例
GroupLayout 是一个 LayoutManager,它将组件按层次分组,以决定它们在 Container 中的位置.GroupLayout 主要供生成器使用,但也可以手工编码.分组由 Grou ...
- java事件编程_java基础 ---Swing事件编程
java基础 ---Swing事件编程 GUI的设计就剩个菜单组建,这个组件也是想当于容器套容器,在设计方面没有什么难度,主要是一些事件的响应.还有另一种事件的监听方式,也就是适配器监听方法. 1.菜 ...
- java timer 动画_java – 使用Swing动画进行计时
Jonas已经给出了答案(使用Swing计时器),但是解释为什么你没有看到动画可能是有用的,以及为什么计时器是这个问题的最佳解决方案. 为什么我看不到不同的重绘 当您调用JComponent #rep ...
- java null布局_Java Swing 绝对布局管理方法,null布局
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.awt.Container; import java.awt.Dimension; import java.awt.Rectang ...
最新文章
- [Oracle]为何Archivelog 没有马上被删除
- Science新研究颠覆认知,有望一举解决困扰器官移植60余年问题,网友:生物课本得改了...
- RedHat6.5网卡问题总结
- 基于Maven管理的Mapreduce程序下载依赖包到LIB目录
- 一步步编写操作系统 11 实模式下程序分段的原因
- 一个基于STM32实现的多组分气体分析仪项目
- 通过zabbix获取数据库连接的信息及部分扩展
- java基于ssm+mysql的宠物店管理系统 计算机毕业设计
- 应用ruby打造个性化的有道单词本 (一)
- 责任链模式实现及在Filter中的应用
- java一个字符几个字节_Java 语言中一个字符占几个字节?
- python画线段代码_python画线代码
- 工厂模式与抽象工厂模式
- 是选择决定了你的一生,而不是努力
- 临床执业助理医师(综合练习)题库【5】
- 电脑BIOS密码的设置与修改方法
- 情人节程序员用HTML网页表白【爱心表白】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
- 13.DoS防御----BeEF浏览器渗透----暴力破解之美杜莎---DNS指南
- mex matlab混编,mex混编后运行总是导致matlab崩溃是什么情况?
- Linux下屏保程序