JavaSwing界面设计(所有控件及示例)课件

上传人:20****08 文档编号:241320161 上传时间:2024-06-17 格式:PPT 页数:133 大小:1.40MB
返回 下载 相关 举报
JavaSwing界面设计(所有控件及示例)课件_第1页
第1页 / 共133页
JavaSwing界面设计(所有控件及示例)课件_第2页
第2页 / 共133页
JavaSwing界面设计(所有控件及示例)课件_第3页
第3页 / 共133页
点击查看更多>>
资源描述
SWING界面设计SWING界面设计1n概述n用户界面n组件介绍n布局管理n事件处理n菜单和表格主要内容概述主要内容2本章基本要求n了解AWT和Swingn熟悉4个顶层容器n掌握JFramen熟悉常用的中间容器n会对组件进行布局n熟悉常用基本组件的创建和操作n会设置组件的颜色和字体n会处理组件上发生的事件n会创建菜单和表格本章基本要求了解AWT和Swing3n用户界面的类型字符用户界面(CUI):例如,MS-DOS图形用户界面(GUI):例如,MicrosoftWindowsnGUI的组件基本的控制基本的控制组件,件,例如:例如:Button、Label等等。容器:容器:能容能容纳和排列和排列组件的件的组件件组件件用户界面概述用户界面概述组件继承它的父容器的性质用户界面的类型基本的控制组件,例如:Button、Label4MenuList BoxCheck BoxRadio ButtonButtonLabel Frame WindowText BoxCombo BoxMenuListBoxCheckBoxRadioBut5nAWTAWT(AbstractWindowToolkit)是在Swing出现之前用来设计界面的工具包用awt包中的类创建的用户界面在不同的操作平台上有不同的表现。使用不灵活importjava.awt.*;nSwingSwing是对AWT的扩展,它是Java2中的一个标准包n组件都以J开头,例如:JFrame、JButton等。swing界面在不同的平台上外观完全一样,真正做到平台独立nimportjavax.swing.*;基本概述AWT基本概述6界面设计中常用组件类的体系结构java.lang.Objectjava.awt.Componentjava.awt.Containerjava.awt.Paneljava.awt.Windowjava.applet.AppletJAppletjavax.swing.JComponentjava.awt.Dialogjava.awt.FrameJDialogJFrameJWindowSwing组件组件界面设计中常用组件类的体系结构java.lang.Objec7用户界面用户界面8n一个顶层容器(即主窗口)n顶层容器包含若干个中间容器n每个中间容器包含若干个基本组件n按照合理的布局方式将它们组织在一起n基本组件可响应发生在其上的事件Java程序界面的构成一个顶层容器(即主窗口)Java程序界面的构成9n容器容器是用来容纳和管理一组界面元素的对象。基本组件必须被安排在某个容器中,否则就无法使用。JFrameContainerJWindowJPanelJDialogJApplet有边框容器无边框容器顶层容器顶层容器容器JFrameContainerJWindowJPanel10顶层容器nJFrame,JApplet,JDialog,JWindow作用:创建初始界面,为其他组件提供一个容器,以构建满足用户需求的操作界面nJFrame用来创建application,最常用的nJApplet用来创建appletnJDialog用来创建对话框,常用nJWindow不常用顶层容器JFrame,JApplet,JDialog11nJPanel,JScrollPane,JSplitPane,JTabbedPane、JInternalFrame、Box这些容器提供将有关组件按照某种布局组合在一起,然后放入中间容器或顶层容器的功能nJPanel提供一个面板nJScrollPane是具有滚动条的窗格nJSplitPane是具有拆分功能的窗格nJTabbedPane是带有若干标签的分类窗格nJInternalFrame用于创建内嵌于JFrame中的内部框架nBox提供创建横向/纵向盒子容器的功能中间容器JPanel,JScrollPane,JSplitP12nJLabelnJButton、JCheckBox、JRadioButtonnJList、JComboBoxnJTextField、JPasswordField、JTextAreanJToolBar、JToolTip、JProgressBarnJSlider、JSpinnernJFileChooser、JColorChoosernJMenuBar、JMenu、JMenuItem、JCheckBoxMenuItem、JRadioButtonMenuItem、JPopupMenunJTablenJTreenJOptionPane、JSeparator基本组件基本组件JLabel基本组件13n类 JFrame 是java.awt.Frame的子类n在Swing的组件中,JFrame 并不全是由Java编写的是一种与平台关系比较密切的组件(Heavyweightcomponent)java.lang.Object|+-java.awt.Component|+-java.awt.Container|+-java.awt.Window|+-java.awt.Frame|+-javax.swing.JFrame创建用户主窗口创建用户主窗口-JFrame类JFrame是java.awt.Frame 的子类创建用14构造方法JFrame()创建无标题窗口。JFrame(Strings)创建标题名字是字符串s的窗口。例如:JFramef=newJFrame(“Hello”);常用方法setTitle(String title)设置JFrame标题文本get/setSize():获取/设置JFrame的大小。add(Object a):将组件添加到JFrame中。dispose()关闭JFrame并回收用于创建窗口的任何资源。setVisible(boolean b)设置JFrame的可见性。setLocation(x,y)设置JFrame在屏幕的位置创建用户主窗口创建用户主窗口-JFrame构造方法创建用户主窗口-JFrame15n常用方法void setExtendedState(int);/设置扩展的状态,取值:NORMAL ICONIFIED MAXIMIZED_HORIZ MAXIMIZED_VERT MAXIMIZED_BOTH/最大化void setDefaultCloseOperation(int);/设置默认的关闭时的操作,取值:DO_NOTHING_ON_CLOSE HIDE_ON_CLOSE DISPOSE_ON_CLOSE EXIT_ON_CLOSE/关闭创建用户主窗口创建用户主窗口-JFrame常用方法创建用户主窗口-JFrame16importjavax.swing.*;publicclassFirstJFramepublicstaticvoidmain(Stringargs)JFramef=newJFrame();f.setTitle(MyFirstJFrame);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setSize(300,300);f.setVisible(true);示例:直接使用示例:直接使用JFrame创建创建示例:直接使用JFrame创建17importjavax.swing.*;publicclassSecondJFrameextendsJFramepublicSecondJFrame()super(“MySecondJFrame”);setDefaultCloseOperation(EXIT_ON_CLOSE);setExtendedState(MAXIMIZED_BOTH);setVisible(true);publicstaticvoidmain(Stringargs)SecondJFramef=newSecondJFrame();示例:扩展示例:扩展JFrame创建创建importjavax.swing.*;示例:扩展JFr18n相关类 图标类图标类:javax.swing.ImageIconjavax.swing.ImageIcon 图图像像类类:java.awt.Imagejava.awt.Imagen创建图标和图像对象 ImageIcon ii=new ImageIcon(ImageIcon ii=new ImageIcon(“x.gif”“x.gif”););Image image=ii.getImage();Image image=ii.getImage();n设置setIconImage(image);相关类19n由JFrame创建初始的用户界面n由JPanel、JScrollPane、JTabbedPane、JSplitPane、JInternalFrame、Box等创建中间容器n由基本组件类创建有关的组件n将基本组件按照某种布局添加到中间容器中,根据需要可能会用到容器的嵌套n将中间容器按照某种布局添加到顶层容器中,形成满足用户需求的操作界面界面的基本组织方式界面的基本组织方式由JFrame创建初始的用户界面界面的基本组织方式20Container con=getContentPane();JPanel panel=new JPanel();JButton butt=new JButton(Press Me);panel.add(butt);con.add(panel);获得获得JFrameJFrame的容器并添加组件的容器并添加组件Containercon=getContentPane21n学生基本信息录入界面的设计设计一个用户界面,用于输入学生的下列信息:姓名JTextField密码 JPasswordField 性别JRadioButton 党否 JCheckBox 年龄JSpinner颜色 JColorChooser 加分JSlider系别 JComboBox 选课JList确认 JButton 保存JFileChooser 结果 JTextArea要求输入完毕按“确认”将该学生的信息记录到“结果”中;按“保存”将结果保存到一个指定的文件中;基本信息与结果界面上下分布在一个JSplitPane中;屏幕下方显示当前时间示例:学生信息管理系统示例:学生信息管理系统学生基本信息录入界面的设计示例:学生信息管理系统22步骤一:由JFrame创建初始的用户界面,获得JFrame的容器,添加中间容器JPanel示例:学生信息管理系统示例:学生信息管理系统JFrame f=new JFrame();f.setTitle(学生信息管理系统学生信息管理系统);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setExtendedState(MAXIMIZED_BOTH);/f.setSize(800,600);/f.setLocation(200,200);Container con=f.getContentPane();JPanel pan=new JPanel();con.add(pan);f.setVisible(true);步骤一:由JFrame创建初始的用户界面,获得JFrame的23基本组件基本组件24标签 标签(JLabel)是最简单的组件,用于显示单行静态文本。用户只能查看其内容而不能对其进行修改。标签类没有事件响应。构造方法JLabel label1=new JLabel(“JLabel label1=new JLabel(“姓名姓名”););ImageIcon ii=new ImageIcon(“java.gif”);ImageIcon ii=new ImageIcon(“java.gif”);JLabel label2=new JLabel(ii);JLabel label2=new JLabel(ii);JLabel label3=new JLabel(“JLabel label3=new JLabel(“姓名姓名”,ii,JLabel.CENTER);,ii,JLabel.CENTER);标签内容一般不需要改变,但也可以使用setText和setIcon方法进行改变例如当使用同一标签显示不同的图片时,就可使用setIcon方法实现基本组件基本组件标签标签标签基本组件标签25步骤二:添加标签(要录入的基本信息的名称)示例:学生信息管理系统示例:学生信息管理系统JFrame f=new JFrame();Container con=f.getContentPane();Jpanel pan=new JPanel();JLabel l_xm=new JLabel(姓名姓名);pan.add(l_xm);JLabel l_xb=new JLabel(性别性别);pan.add(l_xb);con.add(pan);f.setVisible(true);步骤二:添加标签(要录入的基本信息的名称)示例:学生信息管理26n按钮是常用的功能组件,表示按钮的类为JButton。构造方法JButton button1=new JButton(“姓名”);ImageIcon ii=new ImageIcon(“java.gif”);JButton button2=new JButton(ii);JButton button3=new JButton(“姓名”,ii);常用方法void setActionCommand(String);void addActionListener(ActionListener);基本组件基本组件按钮按钮按钮是常用的功能组件,表示按钮的类为JButton。基本组件27步骤二:添加按钮(确认和保存按钮)示例:学生信息管理系统示例:学生信息管理系统JFrame f=new JFrame();Container con=f.getContentPane();JPanel pan=new JPanel();JLabel l_xml_xm=new JLabel(姓名姓名);pan.add(l_xm);JButton b_sub=new JButton(确认确认);pan.add(b_sub);JButton b_save=new JButton(保存保存);pan.add(b_save);con.add(pan);f.setVisible(true);步骤二:添加按钮(确认和保存按钮)示例:学生信息管理系统JF28n构造方法构造方法JTextField tf1=new JTextField(10);JTextField tf2=new TextField(“aa”);JTextField tf3=new JTextField(“aa”,8);ComponentTextComponentJTextFieldJTextArea单行的文本框单行的文本框多行的文本区多行的文本区基本组件基本组件文本框(文本框(JTextField)n其它方法其它方法public String getText()public String getSelectedText()public void setText(String s)public void setEchoChar(char c)public void setEditable(boolean b)构造方法ComponentTextComponentJTex29步骤二:添加文本框(录入姓名信息)示例:学生信息管理系统示例:学生信息管理系统JFrame f=new JFrame();Container con=f.getContentPane();JPanel pan=new JPanel();JLabel l_xm=new JLabel(姓名姓名);pan.add(l_xm);JTextField tf_name=new JTextField(20);pan.add(tf_name);con.add(pan);f.setVisible(true);步骤二:添加文本框(录入姓名信息)示例:学生信息管理系统JF30n构造方法构造方法 JTextArea ta1=new JTextArea(5,5);JTextArea ta1=new JTextArea(5,5);JTextArea ta2=new JTextArea ta2=new JTextArea(JTextArea(“abab”,8,7);,8,7);ComponentTextComponentJTextFieldJTextArea单行的文本框单行的文本框多行的文本区多行的文本区基本组件基本组件文本区(文本区(JTextArea)n其它方法其它方法 public getCaretPosition()public void insert(String str,int pos)public String getSelectedText()public int getSelectionStart()public int getSelectionEnd()public void replaceRange(String str,int start,int end)构造方法ComponentTextComponentJTex31n应用中经常将文本区对象放入一个滚动窗格中,以使用滚动条功能,方法如下:1.JTextArea ta=new JTextArea(10,10);2.JScrollPane sp=new JScrollPane(ta);基本组件基本组件文本区(文本区(JTextArea)应用中经常将文本区对象放入一个滚动窗格中,以使用滚动条功能,32步骤二:添加文本域(显示录入结果信息)示例:学生信息管理系统示例:学生信息管理系统JFrame f=new JFrame();Container con=f.getContentPane();Jpanel pan=new JPanel();Jlabel l_jg=new JLabel(录入结果录入结果);JTextArea result=new JTextArea(10,30);JScrollPane sp=new JScrollPane(result);pan.add(sp);pan.add(l_jg);con.add(pan);f.setVisible(true);步骤二:添加文本域(显示录入结果信息)示例:学生信息管理系统33基本组件基本组件单选按钮(单选按钮(JRadioButton)n构造方法(与构造方法(与JButton类似)类似)JRadioButton rbutt1=new JRadioButton(JRadioButton rbutt1=new JRadioButton(“男男”,true););ImageIcon ii=new ImageIcon(ImageIcon ii=new ImageIcon(“java.gif”););JRadioButton rbutt2=new JRadioButton(ii);JRadioButton rbutt2=new JRadioButton(ii);JRadioButton rbutt3=new JRadioButton(JRadioButton rbutt3=new JRadioButton(“女女”,iiii,false);false);n常用方法常用方法void addActionListener(ActionListener);void addActionListener(ActionListener);void addItemListener(ItemListener);void addItemListener(ItemListener);boolean isSelected();boolean isSelected();void setSelected(boolean);void setSelected(boolean);基本组件单选按钮(JRadioButton)构造方法(34n使用单选按钮时经常用到ButtonGroup类,如下创建按钮组对象ButtonGroup bg=new ButtonGroup();创建若干单选按钮对象JRadioButton b1=new JRadioButton(“x”);JRadioButton b2=new JRadioButton(“y”);将各单选按钮添加到按钮组中bg.add(b1);bg.add(b2);将单选按钮添加到其他容器中容器对象.add(b1);容器对象.add(b2);n注:按钮组维持只有一个单选按钮处于选择状态基本组件基本组件单选按钮(单选按钮(JRadioButton)使用单选按钮时经常用到ButtonGroup类,如下基本组件35步骤二:添加单选按钮(选择性别)示例:学生信息管理系统示例:学生信息管理系统JFrame f=new JFrame();Container con=f.getContentPane();Jpanel pan=new JPanel();JRadioButton male=new JRadioButton(男男,true);JRadioButton female=new JRadioButton(女女);ButtonGroup group=new ButtonGroup();group.add(male);group.add(female);pan.add(male);pan.add(female);con.add(pan);f.setVisible(true);步骤二:添加单选按钮(选择性别)示例:学生信息管理系统JFr36n构造方法构造方法JCheckbox()JCheckbox()创建一个没有标签的复选框。创建一个没有标签的复选框。JCheckbox(Icon icon)JCheckbox(Icon icon)创建一个有图标的复选框。创建一个有图标的复选框。JCheckbox(Icon icon,boolean sele)JCheckbox(Icon icon,boolean sele)创建一个有图标创建一个有图标iconicon的复选框,的复选框,初始状态为初始状态为selsselsJCheckbox(String s)JCheckbox(String s)创建一个有标签的复选框。创建一个有标签的复选框。JCheckbox(String s,boolean b)JCheckbox(String s,boolean b)创建一个有标签的复选框,参数创建一个有标签的复选框,参数b b设置设置初始状态初始状态JCheckbox(String str,Icon icon)JCheckbox(String str,Icon icon)创建一个有创建一个有strstr文字及图标文字及图标iconicon的复选框的复选框JCheckbox(String str,Icon icon,boolean sele)JCheckbox(String str,Icon icon,boolean sele)创建一个有创建一个有strstr文字文字及图标及图标iconicon的复选框的复选框,初始状态为初始状态为selssels基本组件基本组件复选框(复选框(JCheckbox)构造方法基本组件复选框(JCheckbox)37n常用方法isSelected():返回复选按钮的状态,返回类型是boolean。如果返回true,则表示该按钮处于选中状态;否则处于未选中状态。setSelected(Boolean state):设置复选按钮的状态。基本组件基本组件复选框(复选框(JCheckbox)常用方法基本组件复选框(JCheckbox)38步骤二:添加复选框(选择爱好,多项选择)示例:学生信息管理系统示例:学生信息管理系统JFrame f=new JFrame();Container con=f.getContentPane();Jpanel pan=new JPanel();Jlabel l_ah=new JLabel(爱好爱好);JCheckBox hobby=new JCheckBox(音乐音乐),new JCheckBox(足球足球),new JCheckBox(绘画绘画);pan.add(l_ah);pan.add(hobby0);pan.add(hobby1);pan.add(hobby2);con.add(pan);f.setVisible(true);步骤二:添加复选框(选择爱好,多项选择)示例:学生信息管理系39构造方法String ss=“red”,”green”,”blue”;String ss=“red”,”green”,”blue”;JList list1=new JList(ss);JList list1=new JList(ss);JList list2=new JList(Vector);JList list2=new JList(Vector);其它常用方法void addListSelectionListener();void setVisibleRowCount(int);void setSelectionMode(int);/取值如下(在ListSelectionModel中定义)SINGLE_SELECTIONSINGLE_INTERVAL_SELECTION MULTIPLE_INTERVAL_SELECTION(默认)int getSelectedIndex();int getSelectedIndices();Object getSelectedValue();Object getSelectedValues();基本组件基本组件列表框(列表框(JListJList)构造方法基本组件列表框(JList)40步骤二:添加列表框(选择选修课程)示例:学生信息管理系统示例:学生信息管理系统JFrame f=new JFrame();Container con=f.getContentPane();Jpanel pan=new JPanel();JLabel l_xk=new JLabel(选课选课);String coursesNames=数据结构数据结构“,操作系统操作系统“,网络原理网络原理,Java程序设计程序设计“,分布式系统开发技术分布式系统开发技术,计算机导论计算机导论“,密码学密码学,计算机组成原理计算机组成原理“,编译原理编译原理,图形学图形学”;course=new JList(coursesNames);pan.add(l_xk);pan.add(course);con.add(pan);f.setVisible(true);步骤二:添加列表框(选择选修课程)示例:学生信息管理系统JF41n构造方法String ss=“red”,”green”,”blue”;JComboBox cb1=new JComboBox(ss);JComboBox cb2=new JComboBox(Vector);n常用方法1.addItem()添加一个项目到 JComboBox.2.get/setSelectedIndex()获取/设置 JComboBox 中选中项目的索引3.get/setSelectedItem()获取/设置选中的对象。4.removeAllItems()从 JComboBox 删除所有对象。5.removeItem()从 JComboBox 删除特定对象。6.setEditable把一个组合框设置为可编辑的。注意编辑只会影响当前项,它不会改变列表的内容。基本组件基本组件下拉列表下拉列表(JComboBox)构造方法基本组件下拉列表(JComboBox)42步骤二:添加下拉列表(选择院系)示例:学生信息管理系统示例:学生信息管理系统JFrame f=new JFrame();Container con=f.getContentPane();Jpanel pan=new JPanel();JLabel l_yx=new JLabel(院系院系);pan.add(l_yx);String departmentNames=计算机科学与技术系计算机科学与技术系,电子信息与技术系电子信息与技术系,计算机工程系计算机工程系”;JComboBox department=new JComboBox(departmentNames);department.setEditable(false);pan.add(department);con.add(pan);f.setVisible(true);步骤二:添加下拉列表(选择院系)示例:学生信息管理系统JFr43n构造方法(类似于JTextField)n常用方法void addActionListener(ActionListener);char getPassword();void setEchoChar(char);char getEchoChar();基本组件基本组件密码域密码域(JPasswordField)构造方法(类似于JTextField)基本组件密码域(J44步骤二:添加密码(密码输入显示“*”)示例:学生信息管理系统示例:学生信息管理系统JFrame f=new JFrame();Container con=f.getContentPane();Jpanel pan=new JPanel();JLabel l_ma=new JLabel(密码密码);pan.add(l_ma);password=new JPasswordField(20);password.setEchoChar(*);pan.add(password);con.add(pan);f.setVisible(true);步骤二:添加密码(密码输入显示“*”)示例:学生信息管理系统45n构造方法JSlider slider=new JSlider(JSlider.HORIZONTAL,0,100,10);n常用方法void addChangeListener(ChangeListener);void setValue(int);int getValue();void setMajorTickSpacing(int);void setMinorTickSpacing(int);void setPaintTicks(boolean);/falsevoid setPaintLabels(boolean);/falsevoid setPaintTrack(boolean);/truevoid setSnapToTicks(boolean);/false基本组件基本组件滑动条滑动条(JSlider)构造方法基本组件滑动条(JSlider)46步骤二:添加加分选项(加分的选项采用滑动条实现)示例:学生信息管理系统示例:学生信息管理系统JFrame f=new JFrame();Container con=f.getContentPane();Jpanel pan=new JPanel();JLabel l_jf=new JLabel(加分加分);pan.add(l_jf);addition=new JSlider(JSlider.HORIZONTAL,0,100,50);addition.setMajorTickSpacing(10);addition.setMinorTickSpacing(5);addition.setPaintTicks(true);addition.setPaintLabels(true);addition.setSnapToTicks(true);pan.add(addition);con.add(pan);f.setVisible(true);步骤二:添加加分选项(加分的选项采用滑动条实现)示例:学生信47n构造方法 JProgressBar(int,int,int);JProgressBar pb=new JProgressBar(JProgressBar.HORIZONTAL,0,100);n常用方法void addChangeListener(ChangeListener);void setValue(int);/设置当前值void setString(String);/设置显示的字符串void setStringPainted(boolean);/设置是否显示字符串,默认为falsevoid setBorderPainted(boolean);/设置是否显示边框,默认为true基本组件基本组件进度条进度条(JProgressBar)构造方法基本组件进度条(JProgressBar)48步骤二:添加进度条示例:学生信息管理系统示例:学生信息管理系统JFrame f=new JFrame();Container con=f.getContentPane();Jpanel pan=new JPanel();JProgressBar progbar=new JProgressBar(JProgressBar.HORIZONTAL,0,100);progbar.setStringPainted(true);con.add(pan);f.setVisible(true);步骤二:添加进度条示例:学生信息管理系统JFramef=n49n构造方法JFileChooser fc1,fc2;/声明两个对象变量fc1=new JFileChooser();/使用系统默认目录fc2=new JFileChooser(“d:java”);n显示方法int showOpenDialog(Component);int showSaveDialog(Component);/分别用于显示标准的打开和保存对话框/参数Component指定对话框依附的父组件/返回值:APPROVE_OPTION选择了确认 CANCEL_OPTION选择了取消 ERROR_OPTION出现了错误基本组件基本组件文件选择器文件选择器(JFileChooser)构造方法基本组件文件选择器(JFileChooser)50 其他常用方法void setCurrentDirectory(File);void setMultiSelectionEnabled(boolean);File getSelectedFile();File getSelectedFiles();File getCurrentDirectory();String getName(File);/取得文件/目录名称,不含路径,可用File类的getAbsolutePath()方法获取完整路径void setFileSelectionMode(int);/FILES_ONLY 只能选择文件(默认)DIRECTORIES_ONLY 只能选择目录 FILES_AND_DIRECTORIES 文件和目录都可选void setFileFilter(FileFilter);其他常用方法51n显示方法使用JColorChooser提供的类方法showDialogstatic Color showDialog(Component,/父组件 String,/标题 Color/初始颜色值 );/返回值:新选择的颜色值Colorn示例Color c=JColorChooser.showDialog (this,”请选择颜色”,Color.red);/得到颜色对象c后,即可在需要的地方使用基本组件基本组件颜色选择器颜色选择器(JColorChooser)显示方法基本组件颜色选择器(JColorChooser)52nConfirm对话框int showConfirmDialog(Component,Object);/显示含有 Yes、No、Cancel 按钮的确认框/参数:父组件,显示信息/返回值:YES_OPTION是 NO_OPTION否 CANCEL_OPTION撤销 OK_OPTION确定 CLOSED_OPTION关闭还有其他形式的类方法,请参阅帮助文档基本组件基本组件对话对话框(框(JOptionPane)Confirm对话框基本组件对话框(JOptionPan53nInput对话框String showInputDialog(Component,Object);/参数:父组件,显示信息/返回值:选择确认后返回 输入的字符串 选择取消或关闭后返回 null还有其他形式的类方法,请参阅帮助文档基本组件基本组件对话对话框(框(JOptionPane)Input对话框基本组件对话框(JOptionPane)54nMessage对话框void showMessageDialog(Component,Object);/参数:父组件,显示信息/没有返回值,只是用来显示一些信息还有其他形式的类方法,请参阅帮助文档基本组件基本组件对话对话框(框(JOptionPane)Message对话框基本组件对话框(JOptionPan55nOption对话框int showOptionDialog(Component,/父组件 Object,/显示信息 String,/标题 int,/标准选项按钮组类型 int,/标准信息图标类型 Icon,/自定义信息图标 Object,/自定义选项按钮组 Object/自定义默认的选项按钮 );/该方法提供了丰富且复杂的表达形式,请参阅帮助文档注:使用这些标准对话框,可以方便实现某些功能基本组件基本组件对话对话框(框(JOptionPane)Option对话框基本组件对话框(JOptionPane56微调器(JSpinner)n构造方法JSpinner spinner=new JSpinner();n常用方法void addChangeListener(ChangeListener);void setValue(Object);Object getValue();Object getNextValue();Object getPreviousValue();微调器(JSpinner)构造方法57示例:学生信息管理系统示例:学生信息管理系统JFrame f=new JFrame();Container con=f.getContentPane();Jpanel pan=new JPanel();JLabel lb=new JLabel(年龄年龄);JSpinner jsp=new JSpinner();jsp.setValue(new Integer(20);pan.add(lb);pan.add(jsp);con.add(pan);f.setVisible(true);步骤二:添加年龄微调器步骤二:添加年龄微调器示例:学生信息管理系统JFramef=newJFrame58计时器(Timer)n构造方法Timer(int,ActionListener);Timer timer=new Timer(1000,this);n常用方法void start();void stop();void restart();void setDelay(int);void setRepeats(boolean);boolean isRunning();计时器(Timer)构造方法59 创建边框(使用BorderFactory类的类方法)Border border1=/创建一个具有指定颜色和宽度的线边框BorderFactory.createLineBorder(Color,int);Border border2=BorderFactory.createTitledBorder(String);创建一个新标题边框,采用默认设置,并指定了标题文本。Border border3=BorderFactory.createLoweredBevelBorder();创建一个具有凹入斜面边缘的边框Border border4=BorderFactory.createRaisedBevelBorder();创建一个具有凸出斜面边缘的边框Border border5=BorderFactory.createEtchedBevelBorder();创建一个具有“浮雕化”外观效果的边框,将组件的当前背景色用于突出显示和阴影显示 使用setBorder(border)方法设置组件的边框组件的边框设置组件的边框设置边框(边框(BorderBorder)创建边框(使用BorderFactory类的类方法)组件的边60n分隔线(JSeparator)构造方法a)JSeparator separator1=new JSeparator();/默认水平b)JSeparator separator2=new JSeparator(JSeparator.HORIZONTAL);c)JSeparator separator3=new JSeparator(JSeparator.VERTICAL);使用add(JSeparator)方法加到合适的地方组件的分隔线设置组件的分隔线设置分隔线(JSeparator)组件的分隔线设置61n设置颜色默认情况下,Java使用RGB颜色描述系统RGB指红/绿/蓝三基色,取值范围是0,255,一种颜色就是这三种基本颜色的组合描述颜色的类是java.awt.Color颜色对象的创建1.1.Color c=new Color(0,255,0);Color c=new Color(0,255,0);2.2.直接使用直接使用ColorColor类类中定中定义义的的标标准准颜颜色常量色常量如如 Color.BLACKColor.BLACK 或或 Color.blackColor.black 等等Color c1=Color.BLACK;/Color.blackColor c1=Color.BLACK;/Color.blackC C)颜颜色色选择选择器器JColorChooserJColorChooser直直观观得到一个得到一个ColorColor对对象象Color c3=JColorChooser.showDialog(Component,String,Color);组件的颜色设置组件的颜色设置设置颜色组件的颜色设置62n有了Color对象后,可使用setForeground(Color);setBackground(Color);设置组件的前景色和背景色组件的颜色设置组件的颜色设置有了Color对象后,可使用setForeground(63n字体类:java.awt.Fontn字体对象的创建Font(String name,int style,int size);/名称,如“隶书”/风格,取值有 PLAIN,BOLD,ITALIC/大小,如 24,60Font f=new Font(“宋体”,Font.BOLD,24);n设置组件的字体setFont(Font);组件的字体设置组件的字体设置字体类:java.awt.Font组件的字体设置64n光标类:java.awt.Cursorn光标对象的获取Cursor.getPredefinedCursor(int);/如:DEFAULT_CURSOR、HAND_CURSOR、WAIT_CURSOR、TEXT_CORSOR、CROSSHAIR_CURSORn设置组件的光标setCursor(Cursor.HAND_CURSOR);组件的光标设置组件的光标设置光标类:java.awt.Cursor组件的光标设置65nJPanel创建对象JPanel p=new JPanel();默认布局为FlowLayout,可以改变,如p.setLayout(new GridLayout(2,3);添加组件p.add(组件对象1);p.add(组件对象2);中间容器的使用中间容器的使用JPanel中间容器的使用66nJScrollPaneJTextArea ta=new JTextArea(50,50);JScrollPane sp=new JScrollPane(ta);nJSplitPaneJTextArea ta=new JTextArea(50,50);JPanel p=new JPanel();JSplitPane sp=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,ta,p);/另一种方式JSplitPane sp=newJSplitPane(JSplitPane.VERTICAL_SPLIT,true,ta,p);中间容器的使用中间容器的使用JScrollPane中间容器的使用67nJTabbedPaneJTabbedPane tp=new JTabbedPane();tp.setTabPlacement(int);tp.addChangeListener(ChangeListener);JPanel p1=new JPanel();JPanel p2=new JPanel();tp.addTab(“p1”,p1);tp.addTab(“p2”,p2);tp.removeTabAt(0);int n=tp.getTabCount();中间容器的使用中间容器的使用JTabbedPane 中间容器的使用68JInternalFrame示例:ExampleCh07_Jframe.java中classJInternalFrame_test中间容器的使用中间容器的使用JInternalFrame中间容器的使用69vJava用户图形界面设计步骤用户图形界面设计步骤q根据需要往界面中添加组件根据需要往界面中添加组件q通过布局管理器对容器中的组件进行组织通过布局管理器对容器中的组件进行组织排列排列q如何相应用户对组件的操作,即事件处理如何相应用户对组件的操作,即事件处理小结小结Java用户图形界面设计步骤小结70布局管理布局管理71n布局是指组件在容器中的排列方式,主要有:FlowLayout流式布局BorderLayout边界布局GridLayout网格布局CardLayout卡片布局BoxLayout盒式布局GridBagLayout网格包布局null空布局(不使用布局)注:对于一些复杂的情况,往往需要使用容器的嵌套,各容器可使用不同的布局。当容器的尺寸改变时,布局管理器会自动调整组件的排列布局的概念布局的概念布局是指组件在容器中的排列方式,主要有:布局的概念72该布局以行为单位依次排列各组件,一行排不下时,另起一行JPanel的默认布局是FlowLayout构造方法FlowLayout();FlowLayout(int align);/align一般取值有:CENTER、LEFT、RIGHTFlowLayout(int align,int hgap,int vgap);/hgap和vgap指定组件与容器起始边界以及组件间的水平和垂直间距,默认值为5个像素例如:FlowLayout layout=new FlowLayout(FlowLayout.LEFT,10,10);FlowLayoutFlowLayout该布局以行为单位依次排列各组件,一行排不下时,另起一行Flo73n创建FlowLayout布局对象FlowLayout l=new FlowLayout();n创建容器对象JPanel panel=new JPanel();n设置容器对象的布局或使用默认布局panel.setLayout(l);n向容器中添加组件对象(设组件对象已创建)panel.add(组件对象);FlowLayoutFlowLayout布局的使用布局的使用创建FlowLayout布局对象FlowLayoutl74例如,setLayout(newFlowLayout(FlowLayout.LEFT,10,20);缺点:当用户对由FlowLayout布局管理的区域进行缩放时,布局发生变化。该布局适用于组件个数较少的情况。该布局适用于组件个数较少的情况。FlowLayoutFlowLayout布局的使用布局的使
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!