- 浏览: 1511035 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (595)
- Java咖啡厅 (208)
- IT杂侃 (23)
- 程序员笑话 (7)
- 我的后现代文学 (1)
- WEB编程 (116)
- 软件评测 (8)
- 操作系统 (3)
- 炫目Ruby (2)
- 行业知识 (7)
- 我的动漫情结 (6)
- 其他 (8)
- Window DIY (6)
- 古文学 (3)
- 转载文章 (2)
- IT百科 (7)
- 动态网页Active (1)
- 文档 (1)
- 设计理论 (11)
- .NET 快速开发 (18)
- 英语学习 (6)
- 网站分析 (2)
- 开源软件 (4)
- 数据库 (28)
- 笔记 (4)
- 源代码共享 (8)
- IT人物 (2)
- 软件管理 (10)
- 小说创作 (0)
- 大众软件 (12)
- 网站评论 (3)
- 小虾乱说 (10)
- 游戏 (8)
- 心情 (3)
- 娱乐休闲 (2)
- Delphi编程 (1)
- PHP编程 (4)
- 中间件 (2)
- 移动开发 (2)
- Office应用 (2)
- Photoshop (1)
- Eclipse (5)
- 面试题 (1)
- 手机评测 (0)
- VBScript (1)
- WEB前端-EXT (3)
- 吐槽 (1)
- Java咖啡厅 Ibatis (1)
- javascript Ext (1)
- jquery ui (1)
- require (1)
- WEB编程 Javascript (1)
- jquery (1)
- Swing (1)
- 分布式 (1)
最新评论
-
zhangjihao:
28. 下面哪个Set是排序的? A. LinkedHas ...
Java面试题(选择题) -
zhangthe9:
ICMP报文被封装在IP包里,也就是说他是由IP协议承载的,从 ...
Java面试题(选择题) -
zhunengfei:
真的假的?
自已写的jquery ui框架 -
white_crucifix:
少年,发烫是所有智能手机的特点,而莫名发烫是所有安卓手机的特点 ...
【吐槽】三星手机的OS是一砣屎 -
suzu88:
试了一下,可以用。如果美化一下控件和窗体更有意思。
一个用XML构建Swing视图的框架
++ Swing读书笔记
1-3:版面管理器(Layout Menager)
|BorderLayout
|FlowLayout
|GridLayout
AWT----|CardLayout
|GridBagLayout
Swing--|BoxLayout
1-3-1:BorderLayout的使用:
BorderLayout的类层次结构图:
java.lang.Object
--java.awt.BorderLayout
构造函数:BorderLayout()建立一个没有间距的border layout
BorderLayout(int hgap,int vgap)建立一个组件间有间距的border layout
BorderLayout将版面划分为东、西、南、北、中
例子:BorderLayoutDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BorderLayoutDemo{
public BorderLayoutDemo(){
JFrame f=new JFrame();
Container contentPane=f.getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(new JButton("EAST"),BorderLayout.EAST);
contentPane.add(new JButton("WEST"),BorderLayout.WEST);
contentPane.add(new JButton("SOUTH"),BorderLayout.SOUTH);
contentPane.add(new JButton("NORTH"),BorderLayout.NORTH);
contentPane.add(new JLabel("CENTER",JLabel.CENTER),BorderLayout.CENTER);
f.setTitle("BorderLayout");
f.pack();
f.setVisible(true);
/***read**/
/*处理关闭窗口的操作,若你没写这一段,就算你已经关闭窗口了,但程序并不会终止。
*/
f.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
/***read**/
}
public static void main(String[] args){
BorderLayoutDemo b=new BorderLayoutDemo();
}
}
设置组件的间距,你可以使用有间距参数的BorderLayout构造函数,也可以利用BorderLayout的setHgap(int hgap)与
setVgap(int vgap)两个方法来达成。
1-3-2:FlowLayout的使用:
FlowLayout的类层次结构图:
java.lang.Object
--java.awt.FlowLayout
构造函数:FlowLayout()建立一个新的Flow Layout,此FlowLayout默认值是居中对齐,组件彼此有5单位的水平与垂直间距。
FlowLayout(int align)建立一个新的Flow Layout,此FlowLayout可设置排列方式,组件彼此有5单位的水平与垂直
间距。
FlowLayout(int align,int hgap,int vgap)建立一个新的Flow Layout,此FlowLayout可设置排列方式与组件间距。
FlowLayoutDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FlowLayoutDemo{
public FlowLayoutDemo(){
JFrame f=new JFrame();
Container contentPane=f.getContentPane();
/*你可以使用有间距的FlowLayout构造函数,使FlowLayout的排列具有间距,并
*并可利用排列方向参数来指定靠什么方向排列,FlowLayout共有五种排列方式,
*依次是CENTER(默认值),LEFT,RIGHT,LEADING,TRAILING,若我们将下面程序第13
*行改成contentPane.setLayout(new FlowLayout(FlowLayout.LEFT));
*/
contentPane.setLayout(new FlowLayout());
contentPane.add(new JButton("first"));
contentPane.add(new JButton("second"));
contentPane.add(new JButton("third"));
contentPane.add(new JButton("fourth"));
contentPane.add(new JButton("fifth"));
contentPane.add(new JButton("Last"));
f.setTitle("FlowLayout");
//f.pack();//必须将f.pach()去掉,否则setSize功能将没有作用
f.setSize(400,220);
f.setVisible(true);
f.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
}
public static void main(String[] args){
FlowLayoutDemo b=new FlowLayoutDemo();
}
}
1-3-3:GridLayout的使用:
GridLayout的类层次结构图:
java.lang.Object
--java.awt.GridLayout
GridLayout比FlowLayout多了行和列的设置,也就是说你要先设置GridLayout共有几行几列,就如同二维平面一般,然后你加
进去的组件会先填第一行的格子,然后再从第二行开始填,依此类扒,就像是一个个的格子一般。而且GridLayout会将所填进去组
件的大小设为一样。
构造函数:GridLayout()建立一个新的GridLayout,默认值是1行1列。
GridLayout(int rows,int cols)建立一个几行几列的GridLayout.
GridLayout(int rows,int cols, int hgap,int vgap)建立一个几行几列的GridLayout,并设置组件的间距。
例子:GridLayoutDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CardLayoutDemo implements ActionListener{
JPanel p1,p2,p3,p4;
int i=1;
JFrame f;
public CardLayoutDemo(){
f=new JFrame();//当做top-level组件
Container contentPane=f.getContentPane();
contentPane.setLayout(new GridLayout(2,1));
p1=new JPanel();
Button b=new Button("Change Card");
b.addActionListener(this);//当按下"Change Card"时,进行事件监听,将会有系统操作产生。
p1.add(b); //处理操作在52-64行.
contentPane.add(p1);
p2=new JPanel();
p2.setLayout(new FlowLayout());
p2.add(new JButton("first"));
p2.add(new JButton("second"));
p2.add(new JButton("third"));
p3=new JPanel();
p3.setLayout(new GridLayout(3,1));
p3.add(new JButton("fourth"));
p3.add(new JButton("fifth"));
p3.add(new JButton("This is the last button"));
p4=new JPanel();
p4.setLayout(new CardLayout());
p4.add("one",p2);
p4.add("two",p3);
/*要显示CardLayout的卡片,除了用show(Container parent,String name)这个方法外
*,也可试试first(Container),next(Container),previous(Container),last(Container)这
*四个方法,一样可以达到显示效果。
*/
((CardLayout)p4.getLayout()).show(p4,"one");
contentPane.add(p4);
f.setTitle("CardLayout");
f.pack();
f.setVisible(true);
f.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
}
public void actionPerformed(ActionEvent event){
switch(i){
case 1:
((CardLayout)p4.getLayout()).show(p4,"two");
break;
case 2:
((CardLayout)p4.getLayout()).show(p4,"one");
break;
}
i++;
if (i==3) i=1;
f.validate();
}
public static void main(String[] args){
new CardLayoutDemo();
}
}
1-3-5:GridBagLayout的使用:是java中最有弹性但也是最复杂的一种版面管理器。它只有一种构造函数,但必须配合
GridBagConstraints才能达到设置的效果。
GridBagLayout的类层次结构图:
java.lang.Object
--java.awt.GridBagLayout
构造函数:
GirdBagLayout()建立一个新的GridBagLayout管理器。
GridBagConstraints()建立一个新的GridBagConstraints对象。
GridBagConstraints(int gridx,int gridy,int gridwidth,int gridheight,double weightx,double weighty,
int anchor,int fill, Insets insets,int ipadx,int ipady)建立一个新的GridBagConstraints对象
,并指定其参数的值。
参数说明:
gridx,gridy:设置组件的位置,gridx设置为GridBagConstraints.RELATIVE代表此组件位于之前所加入组件的右边。
若将gridy设置为GridBagConstraints.RELATIVE代表此组件位于以前所加入组件的下面。建议定义出
gridx,gridy的位置,以便以后维护程序。表示放在几行几列,gridx=0,gridy=0时放在0行0列。
gridwidth,gridheight:用来设置组件所占的单位长度与高度,默认值皆为1。你可以使用GridBagConstraints.REMAINDER常
量,代表此组件为此行或此列的最后一个组件,而且会占据所有剩余的空间。
weightx,weighty:用来设置窗口变大时,各组件跟着变大的比例,当数字越大,表示组件能得到更多的空间,默认值皆为0。
anchor: 当组件空间大于组件本身时,要将组件置于何处,有CENTER(默认值)、NORTH、NORTHEAST、EAST、SOUTHEAST、
WEST、NORTHWEST可供选择。
insets:设置组件之间彼此的间距,它有四个参数,分别是上,左,下,右,默认为(0,0,0,0).
ipadx,ipady:设置组件内的间距,默认值为0。
我们以前提过,GridBagLayout里的各种设置都必须通过GridBagConstraints,因此当我们将GridBagConstraints的参数都设置
好了之后,必须new一个GridBagConstraints的对象出来,以便GridBagLayout使用。
例子:
GridBagLayoutDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GridBagLayoutDemo{
public GridBagLayoutDemo(){
JButton b;
GridBagConstraints c;
int gridx,gridy,gridwidth,gridheight,anchor,fill,ipadx,ipady;
double weightx,weighty;
Insets inset;
JFrame f=new JFrame();
GridBagLayout gridbag=new GridBagLayout();
Container contentPane=f.getContentPane();
contentPane.setLayout(gridbag);
b=new JButton("first");
gridx=0;
gridy=0;
gridwidth=1;
gridheight=1;
weightx=10;
weighty=1;
anchor=GridBagConstraints.CENTER;
fill=GridBagConstraints.HORIZONTAL;
inset=new Insets(0,0,0,0);
ipadx=0;
ipady=0;
c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,
fill,inset,ipadx,ipady);
gridbag.setConstraints(b,c);
contentPane.add(b);
b=new JButton("second");
gridx=1;
gridy=0;
gridwidth=2;
gridheight=1;
weightx=1;
weighty=1;
anchor=GridBagConstraints.CENTER;
fill=GridBagConstraints.HORIZONTAL;
inset=new Insets(0,0,0,0);
ipadx=50;
ipady=0;
c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,
fill,inset,ipadx,ipady);
gridbag.setConstraints(b,c);
contentPane.add(b);
b=new JButton("third");
gridx=0;
gridy=1;
gridwidth=1;
gridheight=1;
weightx=1;
weighty=1;
anchor=GridBagConstraints.CENTER;
fill=GridBagConstraints.HORIZONTAL;
inset=new Insets(0,0,0,0);
ipadx=0;
ipady=50;
c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,
fill,inset,ipadx,ipady);
gridbag.setConstraints(b,c);
contentPane.add(b);
b=new JButton("fourth");
gridx=1;
gridy=1;
gridwidth=1;
gridheight=1;
weightx=1;
weighty=1;
anchor=GridBagConstraints.CENTER;
fill=GridBagConstraints.HORIZONTAL;
inset=new Insets(0,0,0,0);
ipadx=0;
ipady=0;
c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,
fill,inset,ipadx,ipady);
gridbag.setConstraints(b,c);
contentPane.add(b);
b=new JButton("This is the last button");
gridx=2;
gridy=1;
gridwidth=1;
gridheight=2;
weightx=1;
weighty=1;
anchor=GridBagConstraints.CENTER;
fill=GridBagConstraints.HORIZONTAL;
inset=new Insets(0,0,0,0);
ipadx=0;
ipady=50;
c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,
fill,inset,ipadx,ipady);
gridbag.setConstraints(b,c);
contentPane.add(b);
f.setTitle("GridBagLayout");
f.pack();
f.setVisible(true);
f.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
}
public static void main(String[] args){
new GridBagLayoutDemo();
}
}
1-3-5:BoxLayout的使用:
BoxLayout的类层次结构图:
java.lang.Object
--java.awt.BoxLayout
BoxLayout提供了两个常数X_AXIS,Y_AXIS来表示水平或垂直排列。若放进去的组件不等高,则系统将会使所有的组件与最高组件
等高,还有,若你将组件都摆在同一行时,系统不因组件宽度在于Container的宽度,而使组件自动摆在下一行,你必须自行处理换
行的操作。
构造函数:
BoxLayout(Container targe,int axis)建立一个水平或垂直的BoxLayout.
讲到BoxLayout,我们就不得不提到Box这个Container,Box这个Container默认的Layout为BoxLayout,而它只能使用这个Layout,
否则编译时会有Error产生,如同前面所讲的,BoxLayout是以水平或垂直方式排列,因此,当我们要产生一个Box Container时,
就必须指定它的排列方式,下面为Box的构造函数:
Box(int axis) 建立一个Box Container,并指定组件的排列方式是水平或垂直。
上面的axis参数,我们可以使用BoxLayout.X_AXIS或BoxLayout.Y_AXIS来指定。或是利用Box类所提供的两个方法:
createHorizontalBox()与createVerticalBox(),来建立BoxContainer.
Box类提供4种透明的组件来做更方便的版面管理。分别是glue、strut、rigid、filler:
下面以两个相连的按钮当例子,起始状态如下:
B1.java
1 import java.awt.*;
2 import java.awt.event.*;
3 import javax.swing.*;
4 public class B1{
5 public B1(){
6 JFrame f=new JFrame();
7 Container contentPane=f.getContentPane();
8 Box baseBox=Box.createHorizontalBox();
9 contentPane.add(baseBox);
10 baseBox.add(new JButton("A"));
11 baseBox.add(new JButton("B"));
12 f.setTitle("BoxLayout");
13 f.setSize(new Dimension(200,50));
14 f.setVisible(true);
15 f.addWindowListener(
16 new WindowAdapter(){
17 public void windowClosing(WindowEvent e){
18 System.exit(0);
19 }
20 }
21 );
22 }
public static void main(String[] args){
B1 b=new B1();
}
}
Glue:当glue插入在两组件间时,它会将两组件挤到最左与最右(或最上与最下),透明的glue将会占满整个中间的空间。
例:
在10与11行间加入下面一行程序:
baseBox.add(Box.createHorizontalGlue());
Strut:当你不想将A与B按钮挤到最旁边时,你可以使用Strut组件,来设置所需要的大小,但仅能限定一维的大小,例如限定
水平或垂直高度。
例:在10与11行间加入下面一行程序:
baseBox.add(Box.createHorizontalStrut(50));//A,B之间间隔50个像素。
Rigid:这个透明组件跟Strut很像,但它可以设置二维的限制,也就是可以设置水平与垂直的限制宽度。
例:在10与11行间加入下面一行程序:
baseBox.add(Box.createRigidArea(new Dimension(50,50)));
为了将Rigid的高度功能显示出来,因此以pack()方法代替setSize()方法,11行替换为:f.pack();
若我们将高度再拉长,例如baseBox.add(Box.createRigidArea(new Dimension(50,50)));的Dimension改成(50,100),则两
组件的上下空白将会增大,因为透明的Rigid组件高度增高了。
Filler:Filler是Box的inner class,它的功能跟Rigid很像,都可以指定长宽的大小限制,且Filler可以指定最大、较佳、最小的长
宽大小,以下是Filler的构造函数:
Box.Filler(Dimension min,Dimension pref Dimension max)建立一个指定大小的Filler对象。
参数min表示最小的显示区域大小,如同上面的例子所示,若所设置最小区域的高度大于按钮A与B的高度,则按钮A与B的上方
与下方将有空白出现。
pref表示较佳的显示区域大小。max表示最大的显示区域大小。
例:在10与11行间加入下面一行程序:
baseBox.add(new Box.Filler(new Dimension(50,50),
new Dimension(100,50),
new Dimension(200,50)));
Box类所提供的方法:
Static Component createGlue()构造一个Glue组件可向水平与垂直方向延伸
Static Box createHorizontalBox()构造一个水平排列的Box组件
Static Component createHorizontalGlue()构造一个水平的Glue组件
Static Component createHorizontalStrut(int width)构造一个水平的Strut组件
Static Component createRigidArea(Dimension d)构造一个Rigid组件
Static Box createVerticalBox()构造一个垂直排列的Box组件
Static Component createVerticalGlue()构造一个垂直的Glue组件
Static Component createVerticalStrut(int height)构造一个垂直的Strut组件
AccessibleContext getAccessibleContext()取得与JComponent相关边的AccessibleContext
Void setLayout(LayoutManager l)丢出AWTError,因为Box只能使用BoxLayout
例子:BoxLayoutDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BoxLayoutDemo{
public BoxLayoutDemo(){
JFrame f=new JFrame();
Container contentPane=f.getContentPane();
Box baseBox=Box.createHorizontalBox();//先产生水平排列方式的Box组件,当作基底容器(BaseBox)
contentPane.add(baseBox);
/*产生垂直排列方式的Box组件来安置第一与第三个按钮
*/
Box vBox=Box.createVerticalBox();
JButton b=new JButton("first");
vBox.add(b);
b=new JButton("third");
b.setMaximumSize(new Dimension(100,150));
vBox.add(b);
baseBox.add(vBox);
/*产生垂直排列方式的Box组件来安置第二与另一个水平排列方式的Box组件
*/
Box vBox1=Box.createVerticalBox();
baseBox.add(vBox1);
b=new JButton("second");
b.setAlignmentX(Component.CENTER_ALIGNMENT);
b.setMaximumSize(new Dimension(300,50));
vBox1.add(b);
Box hBox=Box.createHorizontalBox();
vBox1.add(hBox);
/*将第四与最后一个按钮加入水平排列方式的Box组件中
*/
Box vBox2=Box.createVerticalBox();
vBox2.add(Box.createVerticalStrut(50));
vBox2.add(new JButton("fourth"));
vBox2.add(Box.createVerticalStrut(50));
hBox.add(vBox2);
Box vBox3=Box.createVerticalBox();
vBox3.add(Box.createVerticalGlue());
vBox3.add(new JButton("THis is the last button"));
hBox.add(vBox3);
f.setTitle("BoxLayout");
f.pack();
f.setVisible(true);
f.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
}
public static void main(String[] args){
BoxLayoutDemo b=new BoxLayoutDemo();
}
}
发表评论
-
原创程序- Web版数据库管理
2017-11-15 00:39 1185这是我自已写的Web版的数据库管理工具,主要是依赖于JDBC ... -
Eclipse创建Web项目
2017-07-29 10:53 7841. 打开创建Web项目的对话框 2 ... -
Ant常用的命令
2016-06-16 13:31 13531. 使用Ant生成War包: <war ... -
在Eclipse上使用Ant发布项目
2015-10-17 15:03 1378这里笔者使用是Eclip ... -
Resin中增加一个虚拟目录的方法
2015-09-13 12:53 1126打开resin.config 找到到<h ... -
一个用XML构建Swing视图的框架
2015-09-06 23:12 2611平常想用Java写一些 ... -
Eclipse常见问题
2015-08-24 19:41 742如果Eclipse被强制关闭时,Tomcat可能没有 ... -
Spring Tools Suite 入门教程
2015-05-09 09:15 0Spring Tools Suit,这里简称STS,是 ... -
使用FTP的方法
2015-03-01 17:49 10241. FlashFXP 收费的软件,但是比较好 ... -
关于Spring
2015-02-16 14:46 2009Spring是一个轻量级J2EE框架。 Sp ... -
用Java实现发送邮件到163
2014-12-28 14:50 3862/* 在java版经常看到有人问如何用javamai ... -
Hibernate入门
2014-12-27 01:34 932前言 使用面向对象的语言和关系型的数据库,开 ... -
修改date.toLocaleString()的警告
2014-10-15 11:31 2556我们在写程序的时候,经常要查看时间,所以我们经常会用到 ... -
Java基础题 -- 简述题
2014-04-26 13:44 730(1)简述Java的运行机制 答案:Java语言根 ... -
Java基础题 -- 填空题
2014-04-26 10:00 18921. ______是一个抽象的计算机,和实际的计算机一样, ... -
FreeMaker入门
2014-04-07 19:51 1021第一章 简介 1 什么是FreeMaker ... -
jdk8 新语法
2014-04-01 23:32 1288import java.util.*; public ... -
MyBatis 入门
2014-03-27 23:31 1727每个MyBatis的中心是SqlSessionFact ... -
Jetty入门
2014-02-26 23:48 1583Jetty是一个简易的WebServer框架,使用 ... -
用Swing做的H2管理器
2014-02-24 23:07 1573MainFrame 继承了 JFrame , 增加c ...
相关推荐
- 用户手册或文档:详细介绍如何安装、配置和使用Swing-inspector的指南。 - 示例代码:展示Swing-inspector功能的示例项目,供学习参考。 - 更新日志或版本信息:记录软件的更新内容和改进。 总的来说,Swing-...
本离线API文档详细阐述了Swing库中的各种组件、事件处理机制以及布局管理器等核心概念,对Java桌面开发人员来说是一份非常重要的参考资料。 在Java Swing中,开发者可以创建窗口、菜单、按钮、文本输入框等常见的...
- `javax.swing.text.rtf`:处理RTF(Rich Text Format)文档。 - `javax.swing.tree`:与`JTree`组件相关的类,用于展示和操作树形数据结构。 - `javax.swing.undo`:提供了撤销/重做功能的支持,常用于文本编辑...
本文档将深入讲解如何利用Swing来设计美观且功能丰富的界面,适合初学者和有一定经验的开发者参考。下面我们将详细探讨Swing的主要组件、设计原则以及如何创建和布局组件。 Swing提供了大量的组件,如按钮(JButton...
这个“JavaSwing帮助文档”是专为学习和深入理解Swing而设计的一份详细教程,无论你是Java GUI编程的新手还是有一定经验的开发者,都能从中受益。 Swing 提供了一组组件,这些组件可以构建出功能丰富的、美观的窗口...
3. 布局管理:Swing的布局管理器如FlowLayout、BorderLayout、GridLayout和BoxLayout等在文档中都有详尽的解释。学习者可以掌握如何灵活运用这些布局,以适应不同界面设计的需求。 4. 事件处理:Swing Hacks会讲解...
本资源“Swing样式大全(全56种经典)”涵盖了56种不同的Swing样式,这为开发者提供了广泛的选择,以便根据项目需求和用户喜好定制UI。下面将对Swing样式的一些核心概念和如何应用这些样式进行详细说明: 1. **默认...
- Swing 提供了JDesktopPane和JInternalFrame,用于实现MDI(多文档界面)应用程序。JInternalFrame可以在JDesktopPane上自由移动和缩放,提供类似于窗口的操作体验。 10. **Swing外观(LookAndFeel)**: - ...
MiGLayout - 用于 Swing 的 Java 布局管理器 com.miglayout/miglayout-swing/5.1/miglayout-swing-5.1.jar
这个入门资料整理文档旨在引导初学者逐步掌握 Swing 的基础知识,并通过实际操作来构建一个简单的航班预订系统。 ### 第 1 章 开始之前 1. **关于本教程**:这个教程面向的是对 Swing 不太熟悉的开发者,从最基础...
本文档旨在详细介绍Swing菜单和工具栏的相关知识点,帮助开发者更好地理解和应用这些组件。 #### 二、Swing菜单概述 Swing菜单是基于`JComponent`的子类设计,这意味着它们继承了Swing组件的所有优点。菜单和菜单...
- **官方文档**:[Swing官方文档](http://java.sun.com/docs/books/tutorial/uiswing/index.html)提供了详尽的技术文档和示例代码,是学习Swing不可或缺的资源。 - **书籍推荐**: - 《The JFC Swing Tutorial》:...
这份"swing窗体控件学习文档"很可能是对Swing控件的详细讲解,帮助开发者掌握如何在Java程序中使用这些控件。 Swing提供了许多基本和高级的组件,用于创建窗口、菜单、按钮、文本输入框、滚动面板等元素。下面我们...
- **可配置性**:用户可以根据需求自定义显示的字段和设置,比如隐藏某些不重要的字段,或者调整界面布局。 - **导出功能**:luke8允许导出索引库的部分或全部信息,方便进一步分析和研究。 **4. 使用luke8** 下载...
Word文档通常用于编辑和格式化文本,而PDF则更侧重于呈现文档的精确布局和打印效果。转换过程涉及到读取Word文档的结构和内容,并将其重新渲染为PDF格式。 实现这个功能,我们首先需要一个能够读取和解析Word文档的...
Java Swing 组件大全 Java Swing 是 Java 语言中一个功能强大且广泛使用的图形用户界面(GUI)组件库。它提供了大量的组件和工具,用于构建复杂的桌面应用程序。本文档将对 Java Swing 中的组件进行详细的介绍和...
JToolBar是一个基本的工具栏组件,提供了许多有用的方法来添加工具按钮和管理工具栏的布局。JColorChooser是一个颜色选择器对话框,允许用户选择不同的颜色。JFileChooser是一个文件选择器对话框,允许用户选择文件...
1. **GUI设计器**:提供一个可视化工具,允许开发者通过拖放的方式创建和布局Swing组件,如按钮、文本框、面板等。 2. **代码生成**:从设计视图自动生成相应的Java源代码,帮助开发者快速实现界面逻辑。 3. **代码...
- **官方文档**:Oracle 提供了详细的 Swing API 文档和教程。 - **社区资源**:Stack Overflow、GitHub 等平台上有大量的 Swing 相关问题解答和示例代码。 - **在线课程**:Coursera、Udemy 等网站提供了关于 Swing...
在Java Swing系统中,我们可以通过组件、布局管理器、事件处理等机制来构建复杂的桌面应用程序。在这个“java-swing-.rar_swing系统”压缩包中,包含了一个小型的学生成绩管理系统,它为我们提供了理解Swing应用开发...