java swing布局管理器

合集下载

第8章1 布局管理器

第8章1 布局管理器

这几个数据域的 get 和 set 方法已省略
-alignment: int -hgap: int -vgap: int
布局管理器的对齐方式 (默认值: CENTER). 布局管理器的水平间隔 (默认值: 5 像素). 布局管理器的垂直间隔 (默认值: 5 像素).
+FlowLayout() +FlowLayout(alignment: int) +Flow方向取决于FlowLayout管理器的组件方 向属性。该属性有两种可能:从左到右方向和从 右向左方向。在默认情况下,这个指定方向是从 左到右的。
许多的容器采用流布局管理器作为默认布局管理 方式,如JPanel。
The FlowLayout Class
java.awt.FlowLayout
图8-19
CardLayout
vGap hGap
Components in the container of CardLayout
Component 1 Component 2 Component 3 Component 4
Using CardLayout
youtManager
8.3 布局管理器
例8.13 FlowLayout的示例。程序清单见程序 FlowLayoutExample.java,运行结果见图8-17.
例:ShowFlowLayout.java
8.3 布局管理器
2.边界布局管理器
AWT包的类BorderLayout可以创建边界布局管理 器。边界布局管理器可以将容器分成东 (BorderLayout.EAST)、西 (BorderLayout.WEST)、南 (BorderLayout.SOUTH)、北 (BorderLayout.NORTH)、中 (BorderLayout.CENTER )五个区域,这五个区 域中最多可以放置一个GUI组件。GUI组件可以按 照指定的位置在这五个区域中选择其一布局,如 果没有指定位置放置GUI组件,边界布局管理器 会将该组件放置到容器的中央位置 (BorderLayout.CENTER)。边界布局管理器也是 JFrame与JApplet的默认布局方式。

java swing 高级用法

java swing 高级用法

java swing 高级用法Java Swing是一种用于创建图形用户界面(GUI)的Java库。

它提供了丰富的组件和工具,可以用来开发各种交互式应用程序。

在本文中,我们将探讨Java Swing的一些高级用法和功能。

一、自定义组件Java Swing允许我们创建自定义的GUI组件,以完全满足应用程序的需求。

我们可以通过扩展现有的Swing组件,或者创建全新的组件来实现自定义。

通过继承JComponent类,我们可以创建自己的组件,并在其内部实现绘图和事件处理等逻辑。

这样一来,我们可以根据应用程序的需求,自由地定义组件的外观和行为。

二、轻量级绘图Java Swing提供了一种轻量级的绘图机制,可以在组件上绘制图形和图像。

我们可以使用Graphics类的方法来实现图形的绘制,如画线、画矩形、绘制文本等。

通过在JPanel上重写paintComponent方法,我们可以自定义自己的绘图逻辑。

这使得我们能够轻松地在Swing应用程序中添加自定义的图形和动画效果。

三、多线程支持Java Swing应用程序中常常需要处理大量的任务和事件。

为了保持用户界面的流畅和响应性,我们可以使用多线程来处理这些任务。

Swing提供了SwingWorker类,它是一个方便的工具,用于在后台线程执行耗时的任务,而不会阻塞用户界面。

通过使用SwingWorker,我们可以实现并行计算、异步加载数据等复杂的操作。

四、界面布局管理在Java Swing中,我们可以使用不同的布局管理器来指定各个组件的位置和大小。

例如,BorderLayout可以将组件放置在容器的东、南、西、北和中心位置,而GridLayout可以创建规则的网格布局。

使用布局管理器可以使我们的界面更具灵活性和可维护性。

我们可以根据需要动态改变组件的位置和大小,以适应不同的窗口尺寸和屏幕分辨率。

总结:Java Swing提供了丰富的高级用法和功能,可以帮助我们创建具有交互性和视觉吸引力的GUI应用程序。

Java教学培训PPT课件:第十三章 04 常用布局管理器

Java教学培训PPT课件:第十三章 04 常用布局管理器

边界布局管理器
在默认不指定窗体布局的情况下,Swing组件的布局模式是BorderLayout布局管 理器。边界布局管理器可以将容器划分为东、南、西、北、中5个区域,可以将 组件加入到这5个区域中。容器调用Container类的add()方法添加组件时可以设置 此组件在边界布局管理器中的区域,区域的控制可以由BorderLayout类中的成员 变量来决定,这些成员变量的具体含义如下表所示。
通过GridBagLayout类实现的矩形网格的绘制方向由容器决定,如果容器的方向 是从左到右,则位于矩形网格左上角的单元格的列索引为0,此时组件左上角的 点为起始点;如果容器的方向是从右到左,则位于矩形网格右上角的单元格的列 索引为0,此时组件右上角的点为起始点。
网格组布局管理器
gridx和gridy属性 这两个属性用来设置组件起始点所在单元格的索引值。需要注意的是,属性gridx 设置的是X轴(即网格水平方向)的索引值,所以它表示的是组件起始点所在列 的索引;属性gridy设置的是Y轴(即网格垂直方向)的索引值,所以它表示的是 组件起始点所在行的索引,如下图所示。
网格组布局管理器
ipadx和ipady属性 这两个属性用来修改组件的首选大小。属性ipadx用来修改组件的宽度,属性 ipady用来修改组件的高度。如果为正数,则在首选大小的基础上增加指定的宽度 和高度,如左图所示,如果为负数,则在首选大小的基础上减小指定的宽度和高 度,如右图所示。
Thank you
anchor属性 属性anchor用来设置组件在其所在显示区域的显示位置。通常将显示区域从方向 上划分为9个方位,分别为北方(NORTH)、东北(NORTHEAST)、东方 (EAST)、东南(SOUTHEAST)、南方(SOUTH)、西南 (SOUTHWEST)、西方(WEST)、西北(NORTHWEST)和中心 (CENTER),如下图所示:

JAVA简单的网格布局管理器--JAVA基础

JAVA简单的网格布局管理器--JAVA基础

JAVA简单的⽹格布局管理器--JAVA基础⽹格布局管理器:GridLayoutDemo.java:import java.awt.GridLayout;import javax.swing.JButton;import javax.swing.JFrame;public class GridLayoutDemo extends JFrame{JButton[] jbtn={null,null,null,null,null,null,null,null};//要为null不然有异常public GridLayoutDemo(){jbtn[0]=new JButton("话梅");//注意按钮位置,否则提⽰空指针异常jbtn[1]=new JButton("薯⽚");jbtn[2]=new JButton("饼⼲");jbtn[3]=new JButton("巧克⼒");jbtn[4]=new JButton("腰果");jbtn[5]=new JButton("锅巴");jbtn[6]=new JButton("开⼼果");jbtn[7]=new JButton("冰淇淋");this.setLayout(new GridLayout(3, 3,15,15));//⽹格之间左右、上下间距15个单位长度for (int j = 0; j < jbtn.length; j++) {this.add(jbtn[j]);}this.setTitle("⽹格布局管理器");this.setSize(300,300);this.setResizable(false);//默认窗⼝是可⽤⿏标拖动的,这⾥设置窗⼝不可以拖动this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗⼝的同时,退出this.setVisible(true);}public static void main(String[] args) {// TODO Auto-generated method stubGridLayoutDemo gridLayoutDemo=new GridLayoutDemo();}}import java.awt.GridLayout;import javax.swing.JButton;import javax.swing.JFrame;public class GridLayoutDemo extends JFrame{JButton[] jbtn={null,null,null,null,null,null,null,null};//要为null不然有异常public GridLayoutDemo(){jbtn[0]=new JButton("话梅");//注意按钮位置,否则提⽰空指针异常jbtn[1]=new JButton("薯⽚");jbtn[2]=new JButton("饼⼲");jbtn[3]=new JButton("巧克⼒");jbtn[4]=new JButton("腰果");jbtn[5]=new JButton("锅巴");jbtn[6]=new JButton("开⼼果");jbtn[7]=new JButton("冰淇淋");this.setLayout(new GridLayout(3, 3,15,15));//⽹格之间左右、上下间距15个单位长度for (int j = 0; j < jbtn.length; j++) {this.add(jbtn[j]);}this.setTitle("⽹格布局管理器");this.setSize(300,300);this.setResizable(false);//默认窗⼝是可⽤⿏标拖动的,这⾥设置窗⼝不可以拖动this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗⼝的同时,退出this.setVisible(true);}public static void main(String[] args) {// TODO Auto-generated method stubGridLayoutDemo gridLayoutDemo=new GridLayoutDemo();}}。

使用Java Swing进行桌面应用程序开发

使用Java Swing进行桌面应用程序开发

使用Java Swing进行桌面应用程序开发Java Swing是Java编程语言的一个GUI工具包,可以用于开发漂亮的桌面应用程序。

它提供了丰富的组件和布局管理器,可以帮助开发人员快速构建用户友好的界面。

下面我们来介绍一下如何使用Java Swing进行桌面应用程序开发。

首先,我们需要创建一个Swing的主窗口。

可以通过继承JFrame类来创建一个新的窗口,然后设置窗口的标题、大小和关闭操作等属性。

在构造函数中,可以添加各种组件来构建窗口的布局。

接着,我们可以在窗口中添加各种Swing组件,如按钮、文本框、标签、复选框等,来实现用户交互。

通过设置组件的属性和监听器,可以实现各种功能,如点击按钮触发事件、输入文本获取数据等。

另外,布局管理器也是Swing开发中很重要的一部分。

Swing提供了多种布局管理器,如FlowLayout、BorderLayout、GridBagLayout 等,可以帮助我们更方便地实现窗口中组件的排列和布局。

除了基本的组件和布局管理器,Swing还提供了绘图功能和自定义组件的支持。

通过继承JComponent类,可以实现自定义的绘图和组件,以满足更复杂的需求。

最后,在完成界面设计和功能实现后,可以通过调用setVisible(true)方法来显示窗口,并运行程序。

在程序运行时,用户可以与界面进行交互,体验功能和效果。

总的来说,使用Java Swing进行桌面应用程序开发是一种简单而灵活的方式。

通过合理使用Swing提供的各种组件和功能,可以快速实现各种桌面应用程序,并提供良好的用户体验。

希望以上介绍对你有所帮助,祝你在Java Swing开发的路上顺利!。

第15章 布局管理器

第15章  布局管理器

北京源智天下科技有限公司
1-17
联系方式:
15.5.1 卡片布局介绍
卡片布局是通过CardLayout类创建的.CardLayout类具有两个构 造器,一个是无参构造器,另一个是需要指定控件和容器边界水 平间距和垂直间距的构造器.这些已经在前面多次介绍,这里不 再作过多介绍. 在卡片布局容器中一次只能显示一个控件,要想显示其他控件, 就需要调用CardLayout类中的方法来执行.在CardLayout类的方 法中,first方法和last方法分别是显示第一次添加的控件和显示 最后一次添加的控件.next方法和previous方法分别是显示下一 个添加控件和上一个添加控件.这四个方法都是具有一个参数的 ,该参数是指定对哪一个容器中的控件进行操作.
北京源智天下科技有限公司
1-18
联系方式:
CardLayout类中还有一个show方法,使用该方法可以显示指定的 控件,该方法具有两个参数,第一个参数是指定对哪一个容器中 的控件进行操作,第二个参数是指定要显示控件的名称.控件的 名称是提前为控件设置的. 为控件起名称是在添加控件的时候设置的,向卡片布局容器中添 加控件同样也是通过add方法来完成的.但是这里的add方法需要 两个参数,第一个参数指定要添加的控件,第二个参数就是为该 控件起的名称.
在示例代码15-3中将面板的布局管理器设置为网格布局,并将网 格布局设置为三行两列,从而出现如图15-4的运行结果.如果在 定义网格布局管理器时改变行数或列数,从而就会改变运行结果 .
北京源智天下科技有限公司
1-10
联系方式:
15.3 边框布局
前面学习的流布局和网格布局具有很多相似的地方,但是边框布 局就和他们存在很大的不同.在使用边框布局时,通常都会由程 序员来为控件指定在容器中的位置.边框布局将容器分为五个部 分,包括东南西北中五部分.在每一个部分中只能放置一个控件 ,所以如果控件超过五个将不能完全显示.在使用边框布局时需 要注意的是,当容器的大小发生变化时,四周的控件是不会发生 变化的,只有中间的控件将发生变化.

JavaGUI布局管理器

JavaGUI布局管理器

JavaGUI布局管理器容器可设置布局管理器,管理容器中组件的布局:container.setLayout(new XxxLayout());Java有6种布局管理器,AWT提供了5种:FlowLayoutBorderLayoutGridLayoutGridBagLayoutCradLayoutSwing还提供了⼀种:BoxLayout1、FlowLayout 流式布局顾名思义,组件像⽔流⼀样,从第⼀⾏开始,从左向右依次排列,碰到边界时转到下⼀⾏继续。

三个构造函数:FlowLayout() //使⽤默认参数FlowLayout(int align) //设置对齐⽅式FlowLayout(int align,int hgap,int vgap) //设置对齐⽅式、⽔平间距、垂直间距align是FlowLayout类的常量,⽐如:FlowLayout.LEFT,FlowLayout.CENTER2、BorderLayout 边界布局将容器划分为EAST、WEST、SOUTH、NORTH、CENTER五个部分,每个部分可放置⼀个组件。

2个构造函数:BorderLayout() //使⽤默认参数BorderLayout(int hgap,int vgap) //设置⽔平间距、垂直间距放置组件时需指定位置:container.add(Component comp, Borderlayout.SOUTH); //第⼆个参数是BorderLayout类的常量,指定组件位置container.add(Component comp); //缺省位置时,默认为BorderLayout.CENTER,放在中间⼀共5个位置,⼀个位置最多放1个组件。

当然,可以在⼀个位置放置多个组件,只是后放置的组件会覆盖之前放置的组件。

也可以⼀个都不放。

3、GridLayout ⽹格布局将容器划分为指定⾏数、列数的⽹格,每个格⼦的尺⼨都相同,⼀个格⼦中放置⼀个组件,适合组件⼤⼩差不多的,⽐如放置计算器的按钮。

三十三、Java图形化界面设计——布局管理器之null布局(空布局)

三十三、Java图形化界面设计——布局管理器之null布局(空布局)

三十三、Java图形化界面设计——布局管理器之null布局(空布局)一般容器都有默认布局方式,但是有时候需要精确指定各个组建的大小和位置,就需要用到空布局。

操作方法:1)首先利用setLayout(null)语句将容器的布局设置为null布局(空布局)。

2)再调用组件的setBounds(int x, int y, int width,int height)方法设置组件在容器中的大小和位置,单位均为像素。

x为控件左边缘离窗体左边缘的距离y为控件上边缘离窗体上边缘的距离width为控件宽度height为控件高度实例:使用空布局精确定位组件的位置// NullLayoutDemo.javaimport java.awt.*;import javax.swing.*;public class NullLayoutDemo{ JFrame fr;JButton a,b; NullLayoutDemo() {fr = new JFrame();fr.setBounds(100,100,250,150);//设置窗体为空布局fr.setLayout(null);a=new JButton("按钮a");b=new JButton("按钮b");fr.getContentPane().add(a);//设置按钮a的精确位置a.setBounds(30,30,80,25);fr.getContentPane().add(b);b.setBounds(150,40,80,25);fr.setTitle("NullLayoutDemo");fr.setVisible(true);fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);fr.setLocationRelativeTo(null); //让窗体居中显示}public static void main(String args[]){new NullLayoutDemo();}}程序运行结果如下:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
new DefaultMutableTreeNode(new MyNode("增加班级","42"));
//创建跟节点
private DefaultTreeModel dtm=new DefaultTreeModel(dmtnRoot);
//创建树状列表控件
private JTree jt=new JTree(dtm);
2.1、
在开发系统的各个功能模块之前,首先要完成主界面的设计,此系统有两个主窗体,教师客户端主窗体和学生客户端主窗体,不同的是学生客户端主窗体与教师客户端主窗体功能有差异。写主界面的时候要为各个功能模块留出位置,以便将各个功能模块添加到主窗体,开发主界面的代码框架如下(这里写的是教师客户端主窗体):
new DefaultMutableTreeNode(new MyNode("学生信息管理","2"));
private DefaultMutableTreeNode dmtn3=
new DefaultMutableTreeNode(new MyNode("课程管理","3"));
private DefaultMutableTreeNode dmtn4=
new DefaultMutableTreeNode(new MyNode("课程成绩录入","32"));
private DefaultMutableTreeNode dmtn34=
new DefaultMutableTreeNode(new MyNode("添加课程","34"));
private DefaultMutableTreeNode dmtn42=
new DefaultMutableTreeNode(new MyNode("密码修改","13"));
private DefaultMutableTreeNode dmtn21=
new DefaultMutableTreeNode(new MyNode("新生报到","21"));
private DefaultMutableTreeNode dmtn22=
//为节点注册监听器
this.addListener();
//初始化面板
this.initialJpy();
//初始化主窗体
this.initialFrame();
}
以上代码主要实现了一个左边是树状列表的功能选择栏,右边是一个卡片布局的面板窗体。且树的各个节点注册了监听器,对主窗体及面板进行了初始化,但以上并没有对初始化具体给出。其中要注意的是创建节点时用到的MyNode类是一个自定义的类,这里并没有给出此类的源代码。要显示一个层次关系分明的一组数据,用树状图表示能给用户一个直观而易用的感觉,JTree类如同Windows的资源管理器的左半部,通过点击可以"打开"、"关闭"文件夹,展开树状结构的图表数据。JTree也是依据M-V-C的思想来设计的,Jtree的主要功能是把数据按照树状进行显示,其数据来源于其它对象。
1、
经过讨论此系统的开发是有必要的,针对此系统的使用群体有学生、家长、教师等。此系统可以根据相应信息对学生信息进行更有效的管理。还应用了Java *Swing来编写主体布局界面,使操作更简单、更实用。
2
Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。Swing组件都是AWT的Container类的直接子类和间接子类。Swing包比AWT包提供了更加强大的图形界面开发功能,在AWT包的基础上增加了许多新的组件。
Abstract:The institutions have been expanding, increasing the number of students, the original way of manual records, or even a general data storage management software can not meet the management needs of students. Performance of the traditional low-maintenance data management, query information is not convenient, course selection, low efficiency, heavy workload to maintain performance information for more than make up for deficiencies, facilitate information management and maintenance, and improve management efficiency, in order to develop the school management system to achieve School of Information Management.
16dmtn22.add(dmtn221);
17dmtn22.add(dmtn222);
18dmtn3.add(dmtn31);
19dmtn3.add(dmtn32);
20dmtn3.add(dmtn34);
21dmtn4.add(dmtn42);
22}
23public void initialJpy()
//创建滚动窗口
private JScrollPane jspz=new JScrollPane(jt);
//创建面板
private JPanel jpy=new JPanel();
//创建分割窗格
private JSplitPane jsp1=new JSplitPane(
JSplitPane.HORIZONTAL_SPLIT,jspz,jpy);
31{ //设置窗体的标题、大小及其可见性
32this.add(jsp1);
33jsp1.setDividerLocation(200);
34jsp1.setDividerSize(4);
35Image image=new ImageIcon("ico.gif").getImage();
CardLayout cl;
public TeacherClient(String coll_id,String host)
{
this.host=host;
this.coll_id=coll_id;
//初始化树状列表控件
this.initialTree();
//创建各功能模块对象
this.initialPanel();
public class TeacherClient extends JFrame
{
//host=数据库主机IP+":"+端口号
private String host;
//声明引用学院系编号
String coll_id;
//创建树节点的代码
private DefaultMutableTreeNode dmtnRoot=
new DefaultMutableTreeNode(new MyNode("操作选项","0"));
private DefaultMutableTreeNode dmtn1=
new DefaultMutableTreeNode(new MyNode("系统选项","1"));
private DefaultMutableTreeNode dmtn2=
学籍管理系统
JavaSwing布局管理器
科尔沁艺术职业学院计算机科学与技术系2008级(普理)班 曹容赫
指导教师苏春源
摘 要:院校规模不断扩大,学生数量不断增多,原来的人工记录的方式,甚至是一般的数据存储管理软件不能满足学生管理的需求。传统管理方式维护数据性能低、查询信息不方便、选课效率低、维护成绩信息的工作量大,为弥补以上缺陷,便于信息管理与维护,提高管理效率,从而开发此学籍管理系统,以实现学院的信息化管理。
////声明功能模块引用(声明语句将在后面各模块的开发过程中逐一添加)
private Welcome welcome;
private ChangePwdTeacher changepwdteacher;
private NewStu newstu;
private TeachSearchInfo teachSearchInfo;
关键词Java.*Swing 用户名管理
KerqinArt Institute of evaluating teaching career system
KerqinArtVocationalCollege, Department of Computer Science and Technology 2008(2)Cao ronghe
2.2
2.1中编写主窗体框架的代码时,其中的一些用于初始化窗体方法的具体实现没有给出,下面是对初始化窗体方法的具体实现:
1public void initialPanel()
2{//初始化各功能模块
3//初始化代码在后面各模块的开发过程中逐一开发添加
4}
5//初始化树状列表控件的方法
6public void initialTree()
7{
相关文档
最新文档