java图形讲义界面的布局设计

合集下载

java实验5图形用户界面设计试验

java实验5图形用户界面设计试验

java实验5图形⽤户界⾯设计试验常⽤布局1)、流布局: FlowLayout 从左到右,⾃上⽽下⽅式在容器中排列,控件的⼤⼩不会随容器⼤⼩变化.容器.setLayout(new FlowLayout(FlowLayout.LEFT));2)、⽹格布局: GridLayout 按照指定⾏数与列数,将容器分成⼤⼩相等的单元格每个单元格放置⼀个控件. 不能将控件放在指定单元格 容器.setLayout(new GridLayout(3,4,10,15));3)、边界布局: BorderLayout 将容器分成东、西、南、北、中五个部分 容器.setLayout(new BorderLayout()); 窗⼝的内容⾯板默认布局就是边界布局。

容器.add(控件,BorderLayout.NORTH);4)、混合布局: 使⽤JPanel,将多个布局组合在⼀起使⽤5)、绝对布局 null: 以坐标定位 容器.setLayout(null); 每个控件在放置在容器之前,必须设置其边界 setBounds(x,y,width,height); btn.setBounds(10,100,30,60);常⽤事件1)、事件源 EventSource:能够触发事件控件如:JButton,JTextField,JFrame,JComboBox,....2)、事件 Event:ActionEvent,KeyEvent,WindowEvent,TextEvent,...3)、事件侦听者Listener(接⼝) ActionListener,WindowListener,...class A implements ActionListener{public void actionPerformed(ActionEvent e){....}}A lis=new A();4)、事件处理函数public void actionPerformed(ActionEvent e){....}事件流程:事件源触发事件-->事件源侦听者接收事件-->⾃动调⽤相应事件处理函数.实践编程1.在应⽤程序窗体中安排1个⽂本框,⼀个标签。

java图形用户界面设计教程

java图形用户界面设计教程

第4章图形用户界面设计本章要点● Java图形用户界面设计的基本知识●布局管理器的应用● Java常用图形用界面设计组件的应用● Java常用组件事件处理的应用4.1 认识AWT包和Swing包用户界面是计算机用户与软件之间的交互接口。

一个功能完善,使用方便的用户界面可以使软件的操作更加简单,使用户与程序之间的交互更加有效。

因此图形用户界面(graphics user interface,GUI)的设计和开发已经成为软件开发中的一项重要的工作。

Java语言提供的开发图形用户界面(GUI)的功能包括AWT(Abstract Window Toolkit)和Swing两部分。

这两部分功能由Java的两个包来完成-awt和swing。

虽然这两个包都是用于图形用户界面的开发,但是它们不是同时被开发出来了。

awt包是最早被开发出来的。

但是使用awt包开发出来的图形用户界面并不完美,在使用上非常的不灵活。

比如awt包所包含的组件,其外观是固定的,无法改变,这就使得开发出来的界面非常死板。

这种设计是站在操作系统的角度开发图形用户界面,主要考虑的是程序与操作系统的兼容性。

这样做的最大问题就是灵活性差,而且程序在运行时还会消耗很多系统资源。

由于awt包的不足表现,SUN公司于1998年针对它存在的问题,对其进行了扩展,开发出了Swing,即swing包。

但是,SUN公司并没有让swing包完成替代awt包,而是让这两个包共同存在,互取所需。

awt包虽然存在缺点,但是仍然有可用之处,比如在图形用户界面中用到的布局管理器、事件处理等依然采用的是awt包的内容。

Java有两个主要类库分别是Java包和Javax包。

在Java包中存放的是Java语言的核心包。

Javax包是Sun公司提供的一个扩展包,它是对原Java包的一些优化处理。

swing包由于是对awt包的扩展和优化,所以是存放在Javax包下的,而awt包是存放在Java包下的。

Java17第十四章2-界面设计swing

Java17第十四章2-界面设计swing
安卓越科技北京有限公司33wwwanjoyocom安卓越科技北京有限公司34wwwanjoyocom安卓越科技北京有限公司35wwwanjoyocom安卓越科技北京有限公司36wwwanjoyocom安卓越科技北京有限公司37wwwanjoyocom安卓越科技北京有限公司38wwwanjoyocom安卓越科技北京有限公司39wwwanjoyocom安卓越科技北京有限公司40wwwanjoyocom安卓越科技北京有限公司41wwwanjoyocom安卓越科技北京有限公司42wwwanjoyocom安卓越科技北京有限公司43wwwanjoyocom安卓越科技北京有限公司44wwwanjoyocom安卓越科技北京有限公司45wwwanjoyocom安卓越科技北京有限公司46wwwanjoyocom2d图形的绘制安卓越科技北京有限公司47wwwanjoyocomimportjavaawtborderlayout
JPopupMenu:弹出式菜单组件
安卓越科技(北京)有限公司
18
import java.awt.Color; import javax.swing.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class PopupMenuTest { static JPopupMenu popup=null; public static void main(String[] args) { JFrame frame = new JFrame(); frame.setBounds(200,300,200, 300); frame.setTitle("我的第一个小板凳"); //设置不允许调整窗口的大小 frame.setResizable(false); frame.setBackground(Color.ORANGE); popup = new JPopupMenu(); popup.add("徐明华"); popup.add("张燕君"); popup.add("徐诗佳"); popup.add("王子昊"); popup.setName("右击菜单"); frame.add(popup);//在窗体上加右击菜单 frame.addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e) { if(e.getButton() == MouseEvent.BUTTON3){ popup.show(e.getComponent(), e.getX(), e.getY()); } } });//添加事件监听器 frame.setVisible(true);//显示窗体}}

Java图形用户界面设计

Java图形用户界面设计

13
(3) 事件监听器(Listener) 事件处理机制中的核心部分,主要的功能大致可以分为 两部分:第一,监听组件,观察组件有没有发生某类事 件;第二,如果监听的组件发生了某类事件,则调用对 应的动作处理方法立刻处理这个事件。 在Java事件处理机制中,监听器处于主体地位。与事件 分类对应,监听器也相应的分成若干种类型,例如,鼠 标事件对应鼠标监听器,键盘事件对应键盘监听器,窗 口事件对应窗口监听器等。
25
5.3.2 AWT组件库常用组件举例 【问题1】 在窗口f中,有一个文本框tf,三个按钮btn_1、 btn_2、btn_3。当使用鼠标点击btn_1时,文本框显示 btn_1按钮被点击,当使用鼠标点击btn_2按钮时,文本框 显示btn_2按钮被点击,当使用鼠标点击btn_3按钮或者窗 口f的关闭按钮时,窗口关闭,程序退出。
(4) Choice Choice表示下拉选择框组件,选择框中的每一个选项称 为一个Item,Item的类型一般为String字符串。 (5) Label Label表示标签组件,主要作用在于创建提示性的文本。
23
(6) MenuBar、Menu和MenuItem MenuBar表示菜单条组件,该组件由Menu菜单构成,而 Menu菜单又可由Menu菜单和MenuItem菜单项构成。 (7) TextField TextField表示文本框组件,与文本域组件不同的是, 文本框中只能有一行文本。 (8) TextArea TextArea表示文本域组件,可以容纳多行文本。
30
(3) JRadioButton和ButtonGroup 在Swing中与Checkbox对应的是JCheckBox,实际使用时, 如果需要创建单选框组的话,经常使用的是 JRadioButton而非JCheckBox。如果将多个JRadioButton 组件放在一个ButtonGroup中时,这些JRadioButton组件 将不再具有复选功能,而是只具有单选功能,也即变成 单选框。 (4) JComboBox JcomboBox对应于AWT中的Choice,表示下拉选择框组件, 选择框中的每一个选项称为一个Item,Item的类型一般 为String字符串,也可以是指定的泛型类型。

Java语言程序设计:第十章 Java图形用户界面

Java语言程序设计:第十章 Java图形用户界面

t}ryesflrs{eaetmD{teer.fypaau{cltkC(l)o; seOperation(EXIT_ON_CLOSE);
选中“ToGoelnUyke}DsiItrMt.caiegmtjefaebreamxtaeIcHtncnmDnLheeaistoea}ep((gidf)oE.ctae;veinkxoaurarAc单.ntcllsstcieo.dTnc击ephmpoardrtetmotLi(i“FneoeEleokte(nnFnS)xoieiSttl”ec(te;kla)}iC”exzA.cgceplkneaetT=dtipsoS“rFtsanicoSNecrnaeeeav)(exlem(){nc;ASeellp”(iz)t)ei保;o()n存;)源{ 文U件I和M工an程a文g件er.getS

有间距
CENTER
的 East
组 容se器tHgap(int hgap)

setVgap(int vgap)

将组件间的水平间距设置为指定的值

将组件间的垂直间距设置为指定的值
下边的组件
South
天津职业技术师范大学
BorderLayout
…… class testFrame extends JFrame {
天津职业技术师范大学
BorderLayout
North

边 West 的
组 容器

上边的组件 CENTER
下边的组件
South
右 边 的 East 组 件
天津职业技术师范大学
BorderLayout
North
方法
左 BorderLay边out( )
West 的

实验九Java图形用户界面设计1

实验九Java图形用户界面设计1

实验九Java图形用户界面设计(1)一实验目的(1)掌握Frame与面板的使用(2)布局管理器的使用(3)布局管理器的使用(4)边界风格的使用(5)掌握简单Java事件的处理二实验内容1、创建并显示一个标题为“My Frame”,背景色为白色,大小为1000×1000的框架。

在该框架中放置八个按钮,按钮的标题分别为“按钮1”、……“按钮8”。

采用FlowLayout布局管理器。

程序:import java.awt.*;import javax.swing.*;public class Con1{private JFrame f;private JButton b1,b2,b3,b4,b5,b6,b7,b8;public static void main(String args[]){Con1 c=new Con1();c.go();}public void go(){f=new JFrame("My Frame");Container con=f.getContentPane();con.setLayout(new FlowLayout());con.setBackground(Color.white);con.setLayout(new FlowLayout(FlowLayout.RIGHT,920,50));b1=new JButton("按键1");b2=new JButton("按键2");b3=new JButton("按键3");b4=new JButton("按键4");b5=new JButton("按键5");b6=new JButton("按键6");b7=new JButton("按键7");b8=new JButton("按键8");con.add(b1); c on.add(b2); c on.add(b3); c on.add(b4);con.add(b5); c on.add(b6); c on.add(b7); c on.add(b8);f.setSize(1000,1000);f.setVisible(true);}}结果:2、编写一个java程序,在程序中生成一个框架窗口,设置窗口的布局管理器为网格式布局管理器,往窗口中加入9个按钮程序:结果:3、编写一个java程序,单击窗口的“关闭”按钮时退出程序,使用BorderFactory的静态方法创建边界,运行效果如下图所示:结果:4、构造一个Frame窗口,单击窗口的“关闭”按钮时退出程序(参考JFrame的setDefaultCloseOperation方法);Frame中包含一个“Presss Me”按钮,单击该按钮,在控制台显示单击次数:“你已经单击按钮X次!”。

Java的GUI设计打造美观直观的用户界面

Java的GUI设计打造美观直观的用户界面Java是一种广泛使用的编程语言,拥有着强大的图形用户界面(GUI)设计能力。

通过使用Java提供的各种GUI库和工具,开发人员可以轻松地创建美观、直观的用户界面。

本文将介绍一些在Java中实现这样的GUI设计的方法和技巧。

一、选择合适的GUI库在Java中,有多个GUI库可供选择,比如Swing、JavaFX等。

选择合适的GUI库是设计美观直观界面的第一步。

Swing是一个成熟的GUI库,提供了丰富的组件和布局管理器,可以满足大部分GUI设计需求。

JavaFX是Java官方推荐的GUI库,它提供了更现代化的界面设计风格和更优秀的性能。

二、使用布局管理器布局管理器是GUI设计中重要的一环,它定义了组件在窗口中的位置和大小。

Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout等。

通过合理选择和组合这些布局管理器,可以实现各种复杂的界面布局。

三、使用合适的图标和图片图标和图片在GUI设计中起着很重要的作用,可以通过它们来提升用户界面的美观性和直观性。

Java提供了处理图标和图片的功能和类库,开发人员可以使用这些功能来加载、处理和显示各种图标和图片。

四、使用合适的颜色和字体颜色和字体也是GUI设计中非常重要的元素,可以用来强调界面的重要信息或者创建特定的视觉效果。

Java提供了各种颜色和字体的类库和功能,可以用来选择合适的颜色和字体样式。

五、增加交互性一个好的用户界面应该具有良好的交互性,能够方便用户进行操作。

Java提供了丰富的事件处理机制和监听器,可以实现交互性功能。

开发人员可以通过监听用户的操作,及时响应并更新界面,实现更好的用户体验。

六、进行界面美化除了以上的基本设计原则,开发人员还可以通过一些额外的技巧来进一步美化用户界面。

比如使用渐变色背景、添加阴影效果、使用动画效果等。

这些技巧可以使界面更加生动、有趣,并提升用户的整体体验。

java图形界面设置教程


Java实例——(续)
setSize(300,200); bl.setText(“欢迎使用Java语言”); bl.setBounds(50,50,150,20); bl.setAlignment(Label.CENTER); bl.setBackground(Color.blue); bl.setForeground(Color.red); add(bl); setVisible(true); } public static void main(String args[]){ new Label1(); } }
简单GUI程序
1.引用需要的包和类。 2.设置一个顶层的容器。 3.根据需要为容器设置布局管理器或使用默认布 局管理器。 4.将组件添加到容器内。 5.为响应事件的组件编写事件处理代码。
建立窗口Frame类的操作
创建窗口的基本和必要操作包括以下方面:
1.设置窗口的大小。 2.设置窗口的标题。 3.确定窗口在屏幕的放置位置。 4.显示窗口。 5.关闭窗口。
window事件及其响应每一个事件类都有一个唯一的事件处理方法接口如处理鼠标事件mousee钮actionevent事件类的对应接口为actionlistener接监听者向事件源注册使监听者能够监听到并处理事件源产生的事件如actionevent事件实现其接口actionlistener
Java实例——(续)
but.setBounds(50,50,100,50); but.addActionListener(fra); fra.add(but,BorderLayout.CENTER); fra.setVisible(true); } public void actionPerformed(ActionEvent e){ fra.setBackground(Color.red); } }

JAVA图形界面各种布局及使用方法

1.布局对于JFrame窗口,默认布局是BorderLayout布局。

对于JPanel,默认布局是FlowLayout布局。

容器可以使用方法:setLayout(布局对象);来设置自己的布局。

(1)FlowLayout布局FlowLayout类创建的对象称做FlowLayout型布局。

FlowLayout类的一个常用构造方法如下:FlowLayout()该构造方法可以创建一个居中对齐的布局对象。

例如:FlowLayout flow=new FlowLayout();如果一个容器con使用这个布局对象:con.setLayout(flow);那么,con可以使用Container类提供的add方法将组件顺序地添加到容器中,组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列。

FlowLayout布局对象调用flow.setAlignment(FlowLayout.LEFT);来设置组件靠左对齐FlowLayout布局对象调用setHgap(int hgap) 方法和setVgap(int vgap)可以重新设置布局的水平间隙和垂直间隙。

(2)BorderLayout布局BorderLayout 布局是Window型容器的默认布局,例如JFrame、JDialog都是Window类的间接子类,它们的默认布局都是BorderLayout 布局。

容器使用BorderLayout 布局,那么容器空间简单地划分为东、西、南、北、中五个区域。

每加入一个组件都应该指明把这个组件添加在哪个区域中,区域由BorderLayout中的静态常量CENTER、NORTH、SOUTH、WEST、EAST表示.添加到某个区域的组件将占据整个这个区域。

每个区域只能放置一个组件,如果向某个已放置了组件的区域再放置一个组件,那么先前的组件将被后者替换掉。

(3)CardLayout 布局使用CardLayout 的容器可以容纳多个组件,但是实际上同一时刻容器只能从这些组件中选出一个来显示,这个被显示的组件将占据所有的容器空间。

Java swing布局详解(附示例图)

当选择使用JPanel和顶层容器的content pane时,需要考虑布局管理。

JPanel缺省是初始化一个FlowLayout,而content pane缺省是初始化一个BorderLayout。

下面将分别介绍几种最常用的布局管理器:FlowLayout、BorderLayout、BoxLayout、CardLayout、GridLayout和GridBagLayout。

代码演示每一个布局管理器都会有一个代码演示,xxxLayoutDemo.java(见附件)。

这些文件主要有三个方法组成:addComponentsToPane()提供布局逻辑(依据不同的布局管理器和UI内容)。

Java代码1public static void addComponentsToPane(Container pane) {。

}2/**3*createAndShowGUI()实例化一个JFrame,通过它的ContentPane加载布局逻辑内容。

4*/5private static void createAndShowGUI() {6// Create and set up the window.7JFrame frame = new JFrame("FlowLayoutDemo");8frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);9// Set up the content pane.10addComponentsToPane(frame.getContentPane());11// Display the window.12frame.pack();13frame.setVisible(true);14}15//main()程序入口,单独起一个线程,实例化UI。

16public static void main(String[] args) {17javax.swing.SwingUtilities.invokeLater(new Runnable() {18public void run() {19createAndShowGUI();20}21});22}FlowLayoutFlowLayout类是最简单的布局管理器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)weightx, weighty 指定分配多余空间的方式
淮海工学院 计算机课程
6.5.5 CardLayout布局管理器
• CardLayout布局将容器中的组件象扑克牌一样排列, 每次只能显示最上面的一张。
• 创建默认的CardLayout布局: CardLayout()
• 以指定的行间距、列间距创建GridLayout布局: CardLayout(int,int) 将组件(通常是Panel)以CardLayout加入时,需要指 定一个名字,如:add(“ONE”, Panel)
FlowLayout(int,int,int)
对齐
组件行
组件列
方式 淮海工学间院距计算机课程间距
6.5.2 BorderLayout布局管理器
• BorderLayout是Frame和Dialog的默认布局。它将整个 容器分为东、西、南、北、中5个部分,加入组件时 需要指明放置的位置。
❖ 创建默认的BorderLayout布局管理器: BorderLayout()
void setVgap(int)
设置列间距
淮海工学院 计算机课程
6.5.3 GridLayout布局管理器
• GridLayout布局将容器划分成m行x n列大小相同的格 子,组件放在格子中。
• 创建默认的GridLayout布局,所有组件在一行显示: GridLayout()
• 以指定的行数、列数创建GridLayout布局: GridLayout(int,int)
精品jing
java图形界面的布局设计
FlowLayout
LayoutManager的实现类: BorderLayout
GridLayout GridBagLayout CardLayout null
6.5.1 FlowLayout布局管理器
FlowLayout是一种最简单的布局管理,是Panel 的默认布局。它以流式自左向右、自上而下地放 置容器中的组件,其默认方式为居中对齐方式, 也可以手工设置左对齐或右对齐。
设置列间距 显示第一个加入布局的组件 显示最后一个加入布局的组件 显示当前组件的下一个组件 显示当前组件的前一个组件
设置列间距 获取网格的行数 获取网格的列数 设置网格的行数 设置网格的列数
淮海工学院 计算机课程
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class TestGridLayout extends Applet
• GridBagLayout布局将容器划分成很多矩形小格子,每 个组件可以占用一个或多个单元,从而可以指定每个 组件所占空间的大小
• 创建默认的GridBagLayout布局: GridBagLayout()
通过设置和组件有关的GridContaints对象的属性来分 配每个组件,然后调用GridBagLayout的setContaints方 法将组件与GridContaints对象关联,最后将组件加入 容器中。
if((int)(Math.random()*100)>=50)
add(new Button(Integer.toString(i*6+j)));
//随机加入按钮
else
add(new Label()); //随机加入空白
}
}
}
淮海工学院 计算机课程
6.5.4 GridBagLayout布局管理器
淮海工学院 计算机课程
GridContaints对象的常用属性
(1)gridwidth, gridheight 这两个参数决定组件所占空间单元的行数和列数, 默认值为1。
(2)fill 当组件显示区域比其尺寸大时,该参数确定怎样重 新定义组件大小,其默认值为:
GridBagContaints.NORE (不重新定义大小) 还可以为: GridBagContaints.Horizontal (水平方向拉伸填满) GridBagContaints.Vertical (垂直方向拉伸填满) GridBagContaints.BOTH (两个方向拉伸填满)
淮海工学院 计算机课程
• 创建默认的FlowLayout布局管理器:
FlowLayout() • 以指定的对齐方式创建:
FlowLayout(int)
FlowLayout.LEFT FlowLayout.RIGHT FlowLayout.CENTER
• 以指定的对齐方式及间距创建FlowLayout布局 管理器:
{
public void init()
{
setLayout(new GridLayout(5,6)); //GridLayout布局策略5行6列30网格
for(int i=0;i<5;i++)
for(int j=0;j<6;j++)
{Hale Waihona Puke //if((int)(Math.random()*100)>=0)
❖ 以指定的行、列间距创建BorderLayout布局管理器: BorderLayout(int,int)
组件行 组件列
间距
间距
淮海工学院 计算机课程
BorderLayout的主要方法
int getHgap( )
返回组件间距
int getVgap( )
返回列间距
void setHgap(int)
设置组件间距
淮海工学院 计算机课程
CardLayout的主要方法
int getHgap( )
返回组件间距
int getVgap( )
返回列间距
void setHgap(int)
设置组件间距
void setVgap(int) void first( ) void last( ) void next( ) void previous( )
• 以指定的行数、列数、行间距、列间距创建布局: GridLayout(int,int,int,int)
淮海工学院 计算机课程
GridLayout的主要方法
int getHgap( )
返回组件间距
int getVgap( )
返回列间距
void setHgap(int)
设置组件间距
void setVgap(int) int getRows( ) int getColumns( ) void setRows(int) void setColumns(int )
相关文档
最新文档