JAVA用户界面设计.docx

上传人:b****4 文档编号:6547836 上传时间:2023-05-10 格式:DOCX 页数:45 大小:3.53MB
下载 相关 举报
JAVA用户界面设计.docx_第1页
第1页 / 共45页
JAVA用户界面设计.docx_第2页
第2页 / 共45页
JAVA用户界面设计.docx_第3页
第3页 / 共45页
JAVA用户界面设计.docx_第4页
第4页 / 共45页
JAVA用户界面设计.docx_第5页
第5页 / 共45页
JAVA用户界面设计.docx_第6页
第6页 / 共45页
JAVA用户界面设计.docx_第7页
第7页 / 共45页
JAVA用户界面设计.docx_第8页
第8页 / 共45页
JAVA用户界面设计.docx_第9页
第9页 / 共45页
JAVA用户界面设计.docx_第10页
第10页 / 共45页
JAVA用户界面设计.docx_第11页
第11页 / 共45页
JAVA用户界面设计.docx_第12页
第12页 / 共45页
JAVA用户界面设计.docx_第13页
第13页 / 共45页
JAVA用户界面设计.docx_第14页
第14页 / 共45页
JAVA用户界面设计.docx_第15页
第15页 / 共45页
JAVA用户界面设计.docx_第16页
第16页 / 共45页
JAVA用户界面设计.docx_第17页
第17页 / 共45页
JAVA用户界面设计.docx_第18页
第18页 / 共45页
JAVA用户界面设计.docx_第19页
第19页 / 共45页
JAVA用户界面设计.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JAVA用户界面设计.docx

《JAVA用户界面设计.docx》由会员分享,可在线阅读,更多相关《JAVA用户界面设计.docx(45页珍藏版)》请在冰点文库上搜索。

JAVA用户界面设计.docx

JAVA用户界面设计

一r:

•二:

第10章基于SWING的图形用户界面设计3

举例:

MExlO_l.java

10.1AWT组件与SWING组件概述

1.AWT和Swing概述

Java图形用户界面(GUI)设计主報書黑人Swing两大类库,Swing是AWT的扩展和功能加强。

重组件和轻组件

2.Swing类层次结构(见GUI所用类的层次结构图・罰°

10.1AWT组件与SWING组件概述產总

3.容器类和组件类

(1)顶层容器:

由Container的子类或间接子类仓U建

包括JFrame、JApplet、JDialog和JWindow,分别用于设计框架、小应用程序、对话框和窗体。

它们位于包体系的顶部,其他的GUI组件都包含在顶层容器里。

(2)中间容器:

由JComponent类的子类或间接子类创建

包括JPanel,JScrollPane(滚动窗格),JSplitPane(拆分窗格)等中间容器可以添加在顶层容器中,也可以容纳其他组件,介于顶层组件和原子组件之间。

(3)基本组件:

实现人机交互的组件,包括JButton,JTextField,JLabel,JTextArea,JComboBox,JList,JMenu,JSlider,JCheckBox等。

10.2JFrame窗体

SjFrame类生成的窗口有一个边框,一个标题和用于窗口关闭和图标化(最大化,最小化)的按钮。

例:

ExlO_Frame.java(H看运行效果)

生成实例(对象)・>设置大小・>显示。

1.常用方法:

1IFrame():

创建一个无标题的窗口。

IFrame(Strings):

创建一个标题为s的窗口。

2setTitle(Stringstr):

设置窗口标题;

3setResizable(Booleanboolean):

设置窗口是否可自动调整大小(默认为可调整);

4

设置窗口的宽度和高

setSize(intwidth,intheight):

度;•

10.2JFrame窗体

1.常用方法:

⑤setBounds(intx,inty,intwidth,intheight):

设置窗口左上角的坐标和窗口宽度和高度;

©pack():

用紧凑方式自动设定窗口大小。

Hasisisi

⑦setVisible(booleanb):

设置窗口是否可见。

X轴

1.常用方法:

⑧setDefaultCloseOperation(intoperation):

用来设置单击窗体关闭图标后,程序会做出怎样的处理.

其中的参数需使用下面几个值之一:

DO_NOTHING_ON_CLOSE:

程序什么也不做。

__

HIDE_ON__CLOSE:

(默认值):

隐藏窗体,窗体仍在运行DISPOSE_ON_CLOSE:

关闭当前窗体的运行。

EXITONCLOSE:

结束整个程序的运行。

如:

JFramefl=newJFrame(H这是一个简单的窗口");

2.往窗体上添加组件

(1)顶层容器和中间容器的区别在于:

顶层容器包含一个内容

f为窗体对象

面板。

先获得内容面板:

Containercp=f.getContentPane();

再添加组件:

cp.add(组件名);

或写成一个语句:

f.getContentPane().add(组件名);

⑵不能为JFame窗体设置布局,而应当为JFrame窗体的内容面板设置布局。

内容面板的默认布局是BorderLayout布局。

窗口中的菜单条.菜单.菜单项:

菜单放在菜单条里,菜单

项放在菜单里。

例:

ExlO_Menu・java

1.JMenuBar(菜单条)

JMenuBarjmb=newJMenuBar();

publicvoidsetJMenuBar(JMenuBarmenubar):

将菜单条放置到窗口中的方法.

如:

f.setJMenuBar(jmb);

m3菜单组件y

2.JMenu菜单与JMenuItem菜单项主要方法:

旻空u(Strings):

建立一个指定标题菜单,标题由参数s

JMenuItem(Strings):

构造有标题的菜单

JMenuItem(Stringtext,Iconicon)构造有标题和图标的菜单项

JMenumenul=newJMenu(n文件”);

JMenuItemiteml=newJMenuItem(M打开");

Iconicon=newImagelcon(f1happyJpgn);

JMenuItemitem2=newJMenuItem(H保存役icon);

W这是一个单的苗口

图标接口Icon

打开

2.JMenu菜单与JMenuItem菜单项

JMenu主要方法:

publicvoidadd(Menuitemitem):

向菜单增加由参皺item指定的葉章颈对象。

publicvoidaddSeparator():

向菜单增加分隔条。

publicJMenuItemgetltem(intn):

得到指定索引处

publicintgetItemCount():

得到菜单项数目。

menu1.add(item1);menul.addSeparator();menu1.add(item2);

2.JMenu菜单与JMenuItem菜单项

JMenuItem菜单项主要方法

publicvoidsetEnabled(booleanb):

设置当前菜单

publicStringgetLabelO:

得到菜单项的名字。

publicvoidsetAccelerator(KeyStrokekeyStroke)为菜单项设置快捷键。

iteml.setAccelerator(KeyStroke.getKeyStroke(fo9);

javax.swing.KeyStroke类:

publicstaticKeystrokegetKeystroke(charkeyChar)

publicstaticKeystrokegetKeyStroke(intkeyCode,intmodifiers)

得到Keystroke对象。

KeyEvent.VK_Z0

参数mod辻iers取值:

inputEvent.ALT_MASK^InputEvent.CTRL_MASK和InputEvent.SHIFT_MASKO

item1.setAccelerator));

返回

item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_SJnputEvent.CTRL_MASK));

=1

嵌入子菜单JMenu是JMenuItem的子类,因此菜单项本身还可以是一个菜单,称这样的菜单项为子菜单。

工具栏(I)

乂标准按钮(S)n

7状态栏⑹

7地址栏@)

浏览器栏d)

7锁定工具栏(B)目定义(£).・・

移动这个文询复制这个文件将这个文件拔以电子邮件?

t

文件

打印这个文的删除这个文的

1013

10

10

10

10

10

10

10

.java

14.java

16.cl^ss

16.java

22.java2Zb.java

32.java.

33.java.

.class

.java

IGiTdTafno.java

返回

CJFS10-1

文件和玄件夹任

地址@)

排列国掠1)

选择详细信息C).••自定文文件夹(£)..・

转到

(2)刷新®

缩路SO!

)平铺Q)圉标(3)列表心详细信息@)

列站“❹弓脑X

基本布局管理器(见API)

包括流式布局管理(FlowLayout)和边界布局管理(BorderLayout),它们是最常用的两种。

Panel和Applet默认布局方式是流式布局;

JFrame和JApplet的内容面板(contentpane)的默认布局管理器是边界布局管理器。

它们都属于java.awt包。

1•流式布局

是将所有组件从左到右依次排列.

当改变容器大小时,组件将重新排列,但组件大小不发生变化。

创建方法:

FlowLayout():

构造一个新的FlowLayout,居中对齐,默认的水平和垂直间隙是5个单位;

FlowLayout(intalign):

参数为FlowLayout.LEFT/RIGHT/CENTER三者之一。

例如:

setLayout(newFlowLayout(FlowLayout.LEFT));

 

FlowLayout(intaligminthgapjntvgap):

用来设定组件之

间的水平和垂直间隔距离,单位是像素。

Example10_2

2.边界布局

把容器分为5个区:

北E(North),南区(South),东区

(East),西区(West)和中区(Center)o

边界布局按照“上北下南,左西右东”的布局规律进行

布局.

 

2.边界布局

Example10_3

进行标识:

NORTH>SOUTH>EAST、WEST和

CENTERo

如:

JButtonbSouth=newJButton(n南bNorth=newJButton「北JbEast=newJButton(n东bWest=newJButton(H西

win.add(bNorth,BorderLayout.NORTH);win.add(bSouth^BorderLayout.SOUTH);win.add(bEast,BorderLayout.EAST);win.add(bWest,BorderLayout.WEST);win.add(bCenter,BorderLayout.CENTER);

组件可以是容器,这样可以向容器中添加其它组件。

 

II

10.4布局设计

4.网格布局(GridLayout)(自学)

网格布局将容器分成若干个网格,每一个网格可以放置一个组件,所有组件的大小都相同。

当容器窗口改变大小时,各个组件的大小也做相应的变化。

网格布局的构造方法有两个:

GridLayout(introws,intcols)

GridLayout(introws,intsis,inthgap,intvgap)

构造方法中的参数分别定义网格的行数,列数,水平间距和垂直间距。

例:

创建一个网格布局的窗口容器,当点击任何一个按钮时,窗口的布局就会变换,

例GridDemo.java

5.BoxLayout布局(盒式布局)(自学)

BoxLayout在java.swing・border包中。

III

III

javaswing包提供了Box类,该类也是Container类的一个子类,创建的容器称作一个盒式容器,盒式容器的的默认布局是盒式布局,而且不允许更改盒式容器的布局。

因此,在策划程序的布局时,可以利用容器的嵌套,将某个容器嵌入几个盒式容器,达到你的布局目的。

使用盒式布局的容器将组件排列在一行或一列,这取决于创建盒式布局对象时,是否指定了是行排列述是列排列。

Examplel0_5

6・null布局

使用布局管理器时,由布局管理器负责各个组件的大小和位置,因此用户无法使用setLocation(),setSize(),setBounds()方法设置组件大小和位置,这些方法都会被布局管理器覆

nn.■

这时可用setLayout(null)取消布局管理器,用户手动设置各个组件的大小和位置.•

null布局可以更精确设定各个组件的位置。

10.6中间容器

1•面板(JPanel)PanelDemo.java,PanelDemob.java

面板本身也是一个容器,默认的布局管理器是流式布局器,它可以作为组件(中间容器)放置在顶层容器中。

可以向JPanel添加包括面板在内的组件。

JPanelpNorth=newJPanel();pNorth.add(oneButton);pNorth.add(twoButton);cp.add(pNorth,BorderLayout.NORTH);

2•JScro1IPane滚动窗格

礬噩琢鑼件放到一个滚动窗格中'然后通过滚动

可以使用JScorolIPane的构造方法

JScorolIPane(componentc)构造一个滚动窗格。

ik

亠i

hj

gh

fg

JTextAreainputText=newJTextArea();JScrolIPanesp=newJScrollPane(inputText);

10.5间容器:

3.JSplitPane拆分窗格

拆分窗格有两种类型:

水平拆分和垂直拆分。

鋼諦隘鹫翳容翳删陽左面

JSplitPanesplitPane=new

JSplitPane(JSplitPane.HORIZONTAL_SPLIT4extl,text2);

〃为两个文本区添加水平分割条

splitPane.setDividerLocation(120);〃设置分隔条的位置

1>java.awteCoIor类(详细内容看API)构造函数和方法:

publicColor(intrjntg5mtb);

publicintgetRed();

publicintgetGreen();

publicintgetBlue();

publicfinalstaticColorORANGE;

Colorc=newColor©。

255);//蓝色

jl.setForeground(Coloi\red);

publicFont(Stringname^intstylejntsize);

name为字体名称,style为字体风格,size为字体大小。

publicfinalstaticintPLAIN;或(BOLD,ITALIC);

publicintgetStyle()

publicintgetName()

publicbooleanisPlain()

Fontf=newFont(H黑体1*,Font.BOLD,25);

1.标签(JLabel)例:

ExlO_Label

标签用来显示提示或信息。

标签除可以显示文本外,也可以显示图标。

(1)构造方法:

JLabel():

JLabel(Stringtext)

JLabel(Iconimage)

Imagelconpic=newImagelcon(1*HLPGLOBE.GIFn);

JLabeljll=newJLabel(n显示文字的标签”JLabel.CENTER);

JLabeljl2=newJLabel(n显示文季和鹵标的标签舄picJLabel.LEFT);

JLabelj!

3=newJLabel(picJLabel.CENTER);

1.标签(JLabel)

(2)常用方法:

StringgetText()获取标签的名字。

voidsetText(Strings)设置标签的名字是s。

Icongetlcon()获取标签的图标。

voidseticon(Iconicon)设置标签的图标是icon。

voidsetHorizontalTextPosition(inta)

voidsetVerticalTextPosition(inta)

i标签实例匚〕叵I区I

显示文字的标签

Imageiconbuttonlcon=newImagelcon(11pic/Button.gif*);JButtonbutton=newJButton(H请点击这里buttonlcon);

常用方法:

setEnabled方法:

指定按钮的状态,默认状态为有效可操作状态。

setMnemonic方法:

为按钮设置快捷键,参数是

(大写),例如:

VK_C指定快捷键ALT+C。

button.setMnemonic(KeyEvent.VKM);//指定快捷键ALT+M

2.按钮(JButton)

事件处理

II

ActionEvent事件:

当用户单击命令按钮时,它将产生一个ActionEvent事件,该动作事件在actionPerformed方吐中处理,用getSource^fiJ^M回产生事件的对象(童

件源)。

事件处理

ActionEvent事件:

当用户单击命令按钮时,它将产生一个ActionEvent事件,该动作事件在actionPerformed方法中处理,用getSource方法来返回盘生事恋的对象(事

件源)。

见例:

ButtonDemo.java

复习:

Swing简介

JFrame

菜单

布局设计

中间容器

颜色控制和字体控制

标签与按钮作业:

书上例题和课上练习题

 

见"10年10章程序\DengLu.java

1-事件处理

Java的图形用户界面是事件驱动的。

hi

事件:

对鼠标.键盘等输入设备的操作一般称为事件,常见的事件有:

移动鼠标,单击按钮,在文本字段中输入信退出窗体等。

当用户操作GUI引发某种事件时,由各种各样的监听器(Listener)负责捕捉各种事件。

如单击“确定”按钮,则“确定”按钮就是事件源。

Eventhandler-事件监听器:

接收事件对象并对其进行处理

的对象。

在事件处理的过程中,主要涉及三种类和它们的对象:

Event-事件类:

EventSource-事件源:

Eventhandler-事件监听器:

一般是类,该类若充当监听器,就必须实现与该事件类型相对的接口。

XXXEvent对应于XXXListener。

如:

Acti^nEvent对应于ActionListener

2.按钮(JButton)

107标签与按钮

用户动作

事件源

事件类型

监听器类要实现的监听接口

监砺方法(处理器方法)

单击按钮

JButton

ActionEvent

ActionListener

actionPerformed(

ActionEvente)

事件处理:

publicclassDengLuextendsJFrameimplementsActionListener{

监听接口里的抽象方法。

当事件发生时,自动由监听器负责掉用该方法,接收事件对象,完成事件处理过程。

JButtonok;

昼?

登陆

ok=newJButtonf6确定”);//创建确定按钮;〃注册监听器publicvoidactionPerformed(ActionEvente){//事件发生后要做的事……}

••…}

2・按钮(JButton)

事件处理:

用户动作

事件源

事件类型

监听器类要实现的监听接口

监听方法(处理器方法)

单击按钮

JButton

ActionEvent

ActionListener

actionPerformed(

ActionEvente)

见ButtonDemo.java修改ButtonDemog.java

Java中进行事件处理的一般方法归纳如下:

1.

3!

"

定义监听器类:

对于某种类型的事件XXXEvent,要想接收并处理这类事件,必须定义相应的事件监听器类,该类需要实现与该事件相对应的接口XXXListener;

2.注册:

事件源实例化以后,必须注册该类事件的监听器,使用addXXXListener(XXXListener)方法乗注册监昉器;

3.

Ill

实现事件监听接事件监听接口指定了一个或多个事件处理方法。

 

厘登旺I口I回lip

2.文本框(JTextField)单行文本输入框。

文本框的主要方法:

setText(Stringtext)

getText()

getSelectedText()

setEditable(booleanbool)

■也是单行文本输入框,是

JTextField的子类,其构造方

=J

法也是类似的。

setEchoChar(charch)方法:

用户名:

name

码.AA人儿人冲

确定

取消

来设置密码显示字符,

而隐藏

3.JPasswordField(密码输入框)

鮎登陆U回

用户输入的实际信息,默认显

示为*

4.文本区(JTextArea)

构造方法:

JTextArea(introws,intcolumns)

rows为JTextArea的高度,以行为单位;columns为JTextArea的宽度,以字符为箪位。

如:

JTextAreatextArea=newJTextArea(5,15);

(1)设置分割条

JSplitPanesplitPane=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,textl,text2);

〃为两个文本反添加分割条

splitPane.setDividerLocation(120);//^置分隔条的位置。

add(splitPane,BorderLayout.CENTER);

〃将分割条添加到窗体上

举例:

Examplel0_10.java

4.

⑵设置滚动条:

Examplel0_10_2.Java■按默认规定,文

文本区(JTextArea)

箜默认规産,有滚动条,如果需要添加,则应在芟本区添加一个滚动瑛(scrollpane)。

例如:

JScrollPanesp=newJScrollPane(textArea);

设定是否显示滚动条的方法:

sp.setHorizontalScrollBarPolicy(JScroIlPane.HORIZONTAL_SCROLL

BAR_AS_NEEDED):

需要时血示水平滚动条(默认值),sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLL

BAR_NEVER):

总不显示水平滚动条;sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR.ALWAYS):

总是显示水平滚动条;sp.setVerticalScrollBarPo

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2