JavaSwing界面设计所有控件及示例.ppt
- 文档编号:18728076
- 上传时间:2023-10-21
- 格式:PPT
- 页数:133
- 大小:1.67MB
JavaSwing界面设计所有控件及示例.ppt
《JavaSwing界面设计所有控件及示例.ppt》由会员分享,可在线阅读,更多相关《JavaSwing界面设计所有控件及示例.ppt(133页珍藏版)》请在冰点文库上搜索。
张蕾,界面设计,概述用户界面组件介绍布局管理事件处理菜单和表格,主要内容,本章基本要求,了解AWT和Swing熟悉4个顶层容器掌握JFrame熟悉常用的中间容器会对组件进行布局熟悉常用基本组件的创建和操作会设置组件的颜色和字体会处理组件上发生的事件会创建菜单和表格,用户界面的类型字符用户界面(CUI):
例如,MS-DOS图形用户界面(GUI):
例如,MicrosoftWindowsGUI的组件,用户界面概述,组件继承它的父容器的性质,AWTAWT(AbstractWindowToolkit)是在Swing出现之前用来设计界面的工具包用awt包中的类创建的用户界面在不同的操作平台上有不同的表现。
使用不灵活importjava.awt.*;SwingSwing是对AWT的扩展,它是Java2中的一个标准包组件都以J开头,例如:
JFrame、JButton等。
swing界面在不同的平台上外观完全一样,真正做到平台独立importjavax.swing.*;,基本概述,界面设计中常用组件类的体系结构,用户界面,一个顶层容器(即主窗口)顶层容器包含若干个中间容器每个中间容器包含若干个基本组件按照合理的布局方式将它们组织在一起基本组件可响应发生在其上的事件,Java程序界面的构成,容器容器是用来容纳和管理一组界面元素的对象。
基本组件必须被安排在某个容器中,否则就无法使用。
有边框容器,无边框容器,顶层容器,顶层容器,JFrame,JApplet,JDialog,JWindow作用:
创建初始界面,为其他组件提供一个容器,以构建满足用户需求的操作界面JFrame用来创建application,最常用的JApplet用来创建appletJDialog用来创建对话框,常用JWindow不常用,JPanel,JScrollPane,JSplitPane,JTabbedPane、JInternalFrame、Box这些容器提供将有关组件按照某种布局组合在一起,然后放入中间容器或顶层容器的功能JPanel提供一个面板JScrollPane是具有滚动条的窗格JSplitPane是具有拆分功能的窗格JTabbedPane是带有若干标签的分类窗格JInternalFrame用于创建内嵌于JFrame中的内部框架Box提供创建横向/纵向盒子容器的功能,中间容器,JLabelJButton、JCheckBox、JRadioButtonJList、JComboBoxJTextField、JPasswordField、JTextAreaJToolBar、JToolTip、JProgressBarJSlider、JSpinnerJFileChooser、JColorChooserJMenuBar、JMenu、JMenuItem、JCheckBoxMenuItem、JRadioButtonMenuItem、JPopupMenuJTableJTreeJOptionPane、JSeparator,基本组件,类JFrame是java.awt.Frame的子类在Swing的组件中,JFrame并不全是由Java编写的是一种与平台关系比较密切的组件(Heavyweightcomponent)java.lang.Object|+-java.awt.Component|+-java.awt.Container|+-java.awt.Window|+-java.awt.Frame|+-javax.swing.JFrame,创建用户主窗口-JFrame,构造方法JFrame()创建无标题窗口。
JFrame(Strings)创建标题名字是字符串s的窗口。
例如:
JFramef=newJFrame(“Hello”);常用方法setTitle(Stringtitle)设置JFrame标题文本get/setSize():
获取/设置JFrame的大小。
add(Objecta):
将组件添加到JFrame中。
dispose()关闭JFrame并回收用于创建窗口的任何资源。
setVisible(booleanb)设置JFrame的可见性。
setLocation(x,y)设置JFrame在屏幕的位置,创建用户主窗口-JFrame,常用方法voidsetExtendedState(int);/设置扩展的状态,取值:
NORMALICONIFIEDMAXIMIZED_HORIZMAXIMIZED_VERTMAXIMIZED_BOTH/最大化voidsetDefaultCloseOperation(int);/设置默认的关闭时的操作,取值:
DO_NOTHING_ON_CLOSEHIDE_ON_CLOSEDISPOSE_ON_CLOSEEXIT_ON_CLOSE/关闭,创建用户主窗口-JFrame,importjavax.swing.*;publicclassFirstJFramepublicstaticvoidmain(Stringargs)JFramef=newJFrame();f.setTitle(MyFirstJFrame);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setSize(300,300);f.setVisible(true);,示例:
直接使用JFrame创建,importjavax.swing.*;publicclassSecondJFrameextendsJFramepublicSecondJFrame()super(“MySecondJFrame”);setDefaultCloseOperation(EXIT_ON_CLOSE);setExtendedState(MAXIMIZED_BOTH);setVisible(true);publicstaticvoidmain(Stringargs)SecondJFramef=newSecondJFrame();,示例:
扩展JFrame创建,相关类图标类:
javax.swing.ImageIcon图像类:
java.awt.Image创建图标和图像对象ImageIconii=newImageIcon(“x.gif”);Imageimage=ii.getImage();设置setIconImage(image);,设置JFrame的图标,由JFrame创建初始的用户界面由JPanel、JScrollPane、JTabbedPane、JSplitPane、JInternalFrame、Box等创建中间容器由基本组件类创建有关的组件将基本组件按照某种布局添加到中间容器中,根据需要可能会用到容器的嵌套将中间容器按照某种布局添加到顶层容器中,形成满足用户需求的操作界面,界面的基本组织方式,Containercon=getContentPane();JPanelpanel=newJPanel();JButtonbutt=newJButton(PressMe);panel.add(butt);con.add(panel);,获得JFrame的容器并添加组件,学生基本信息录入界面的设计设计一个用户界面,用于输入学生的下列信息:
姓名JTextField密码JPasswordField性别JRadioButton党否JCheckBox年龄JSpinner颜色JColorChooser加分JSlider系别JComboBox选课JList确认JButton保存JFileChooser结果JTextArea要求输入完毕按“确认”将该学生的信息记录到“结果”中;按“保存”将结果保存到一个指定的文件中;基本信息与结果界面上下分布在一个JSplitPane中;屏幕下方显示当前时间,示例:
学生信息管理系统,步骤一:
由JFrame创建初始的用户界面,获得JFrame的容器,添加中间容器JPanel,示例:
学生信息管理系统,JFramef=newJFrame();f.setTitle(学生信息管理系统);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setExtendedState(MAXIMIZED_BOTH);/f.setSize(800,600);/f.setLocation(200,200);Containercon=f.getContentPane();JPanelpan=newJPanel();con.add(pan);f.setVisible(true);,基本组件,标签标签(JLabel)是最简单的组件,用于显示单行静态文本。
用户只能查看其内容而不能对其进行修改。
标签类没有事件响应。
构造方法JLabellabel1=newJLabel(“姓名”);ImageIconii=newImageIcon(“java.gif”);JLabellabel2=newJLabel(ii);JLabellabel3=newJLabel(“姓名”,ii,JLabel.CENTER);标签内容一般不需要改变,但也可以使用setText和setIcon方法进行改变例如当使用同一标签显示不同的图片时,就可使用setIcon方法实现,基本组件标签,步骤二:
添加标签(要录入的基本信息的名称),示例:
学生信息管理系统,JFramef=newJFrame();Containercon=f.getContentPane();Jpanelpan=newJPanel();JLabell_xm=newJLabel(姓名);pan.add(l_xm);JLabell_xb=newJLabel(性别);pan.add(l_xb);con.add(pan);f.setVisible(true);,按钮是常用的功能组件,表示按钮的类为JButton。
构造方法JButtonbutton1=newJButton(“姓名”);ImageIconii=newImageIcon(“java.gif”);JButtonbutton2=newJButton(ii);JButtonbutton3=newJButton(“姓名”,ii);常用方法voidsetActionCommand(String);voidaddActionListener(ActionListener);,基本组件按钮,步骤二:
添加按钮(确认和保存按钮),示例:
学生信息管理系统,JFramef=newJFrame();Containercon=f.getContentPane();JPanelpan=newJPanel();JLabell_xml_xm=newJLabel(姓名);pan.add(l_xm);JButtonb_sub=newJButton(确认);pan.add(b_sub);JButtonb_save=newJButton(保存);pan.add(b_save);con.add(pan);f.setVisible(true);,构造方法JTextFieldtf1=newJTextField(10);JTextFieldtf2=newTextField(“aa”);JTextFieldtf3=newJTextField(“aa”,8);,基本组件文本框(JTextField),其它方法publicStringgetText()publicStringgetSelectedText()publicvoidsetText(Strings)publicvoidsetEchoChar(charc)publicvoidsetEditable(booleanb),步骤二:
添加文本框(录入姓名信息),示例:
学生信息管理系统,JFramef=newJFrame();Containercon=f.getContentPane();JPanelpan=newJPanel();JLabell_xm=newJLabel(姓名);pan.add(l_xm);JTextFieldtf_name=newJTextField(20);pan.add(tf_name);con.add(pan);f.setVisible(true);,构造方法JTextAreata1=newJTextArea(5,5);JTextAreata2=newJTextArea(“ab”,8,7);,基本组件文本区(JTextArea),其它方法publicgetCaretPosition()publicvoidinsert(Stringstr,intpos)publicStringgetSelectedText()publicintgetSelectionStart()publicintgetSelectionEnd()publicvoidreplaceRange(Stringstr,intstart,intend),应用中经常将文本区对象放入一个滚动窗格中,以使用滚动条功能,方法如下:
JTextAreata=newJTextArea(10,10);JScrollPanesp=newJScrollPane(ta);,基本组件文本区(JTextArea),步骤二:
添加文本域(显示录入结果信息),示例:
学生信息管理系统,JFramef=newJFrame();Containercon=f.getContentPane();Jpanelpan=newJPanel();Jlabell_jg=newJLabel(录入结果);JTextArearesult=newJTextArea(10,30);JScrollPanesp=newJScrollPane(result);pan.add(sp);pan.add(l_jg);con.add(pan);f.setVisible(true);,基本组件单选按钮(JRadioButton),构造方法(与JButton类似)JRadioButtonrbutt1=newJRadioButton(“男”,true);ImageIconii=newImageIcon(“java.gif”);JRadioButtonrbutt2=newJRadioButton(ii);JRadioButtonrbutt3=newJRadioButton(“女”,ii,false);常用方法voidaddActionListener(ActionListener);voidaddItemListener(ItemListener);booleanisSelected();voidsetSelected(boolean);,使用单选按钮时经常用到ButtonGroup类,如下创建按钮组对象ButtonGroupbg=newButtonGroup();创建若干单选按钮对象JRadioButtonb1=newJRadioButton(“x”);JRadioButtonb2=newJRadioButton(“y”);将各单选按钮添加到按钮组中bg.add(b1);bg.add(b2);将单选按钮添加到其他容器中容器对象.add(b1);容器对象.add(b2);注:
按钮组维持只有一个单选按钮处于选择状态,基本组件单选按钮(JRadioButton),步骤二:
添加单选按钮(选择性别),示例:
学生信息管理系统,JFramef=newJFrame();Containercon=f.getContentPane();Jpanelpan=newJPanel();JRadioButtonmale=newJRadioButton(男,true);JRadioButtonfemale=newJRadioButton(女);ButtonGroupgroup=newButtonGroup();group.add(male);group.add(female);pan.add(male);pan.add(female);con.add(pan);f.setVisible(true);,构造方法JCheckbox()创建一个没有标签的复选框。
JCheckbox(Iconicon)创建一个有图标的复选框。
JCheckbox(Iconicon,booleansele)创建一个有图标icon的复选框,初始状态为selsJCheckbox(Strings)创建一个有标签的复选框。
JCheckbox(Strings,booleanb)创建一个有标签的复选框,参数b设置初始状态JCheckbox(Stringstr,Iconicon)创建一个有str文字及图标icon的复选框JCheckbox(Stringstr,Iconicon,booleansele)创建一个有str文字及图标icon的复选框,初始状态为sels,基本组件复选框(JCheckbox),常用方法isSelected():
返回复选按钮的状态,返回类型是boolean。
如果返回true,则表示该按钮处于选中状态;否则处于未选中状态。
setSelected(Booleanstate):
设置复选按钮的状态。
基本组件复选框(JCheckbox),步骤二:
添加复选框(选择爱好,多项选择),示例:
学生信息管理系统,JFramef=newJFrame();Containercon=f.getContentPane();Jpanelpan=newJPanel();Jlabell_ah=newJLabel(爱好);JCheckBoxhobby=newJCheckBox(音乐),newJCheckBox(足球),newJCheckBox(绘画);pan.add(l_ah);pan.add(hobby0);pan.add(hobby1);pan.add(hobby2);con.add(pan);f.setVisible(true);,构造方法Stringss=“red”,”green”,”blue”;JListlist1=newJList(ss);JListlist2=newJList(Vector);其它常用方法voidaddListSelectionListener();voidsetVisibleRowCount(int);voidsetSelectionMode(int);/取值如下(在ListSelectionModel中定义)SINGLE_SELECTIONSINGLE_INTERVAL_SELECTIONMULTIPLE_INTERVAL_SELECTION(默认)intgetSelectedIndex();intgetSelectedIndices();ObjectgetSelectedValue();ObjectgetSelectedValues();,基本组件列表框(JList),步骤二:
添加列表框(选择选修课程),示例:
学生信息管理系统,JFramef=newJFrame();Containercon=f.getContentPane();Jpanelpan=newJPanel();JLabell_xk=newJLabel(选课);StringcoursesNames=数据结构“,操作系统“,网络原理,Java程序设计“,分布式系统开发技术,计算机导论“,密码学,计算机组成原理“,编译原理,图形学”;course=newJList(coursesNames);pan.add(l_xk);pan.add(course);con.add(pan);f.setVisible(true);,构造方法Stringss=“red”,”green”,”blue”;JComboBoxcb1=newJComboBox(ss);JComboBoxcb2=newJComboBox(Vector);常用方法addItem()添加一个项目到JComboBox.get/setSelectedIndex()获取/设置JComboBox中选中项目的索引get/setSelectedItem()获取/设置选中的对象。
removeAllItems()从JComboBox删除所有对象。
removeItem()从JComboBox删除特定对象。
setEditable把一个组合框设置为可编辑的。
注意编辑只会影响当前项,它不会改变列表的内容。
基本组件下拉列表(JComboBox),步骤二:
添加下拉列表(选择院系),示例:
学生信息管理系统,JFramef=newJFrame();Containercon=f.getContentPane();Jpanelpan=newJPanel();JLabell_yx=newJLabel(院系);pan.add(l_yx);StringdepartmentNames=计算机科学与技术系,电子信息与技术系,计算机工程系”;JComboBoxdepartment=newJComboBox(departmentNames);department.setEditable(false);pan.add(department);con.add(pan);f.setVisible(true);,构造方法(类似于JTextField)常用方法voidaddActionListener(ActionListener);chargetPassword();voidsetEchoChar(char);chargetEchoChar();,基本组件密码域(JPasswordField),步骤二:
添加密码(密码输入显示“*”),示例:
学生信息管理系统,JFramef=newJFrame();Containercon=f.getContentPane();Jpanelpan=newJPanel();JLabell_ma=newJLabel(密码);pan.add(l_ma);password=newJPasswordField(20);password.setEchoChar(*);pan.add(password);con.add(pan);f.setVisible(true);,构造方法JSliderslider=newJSlider(JSlider.HORIZONTAL,0,100,10);常用方法voidaddChangeListener(ChangeListener);voidsetValue(int);intgetValue();voidsetMajorTickSpacing(int);voidsetMinorTickSpacing(int);voidsetPaintTicks(boolean);/falsevoidsetPaintLabels(boolean);/falsevoidsetPaintTrack(boolean);/truevoidsetSnapToTicks(boolean);/false,基本组件滑动条(JSlider),步骤二:
添加加分选项(加分的选项采用滑动条实现),示例:
学生信息管理系统,JFramef=newJFrame();Containercon=f.getContentPane();Jpanelpan=newJPanel();JLabell_jf=newJLabel(加分);pan.add(l_jf);addition=newJSlider(JSlider.HORIZONTAL,0,100,50);addition.setMajorTickS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaSwing 界面设计 所有 控件 示例