版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、n 概述n 用户界面n 组件介绍n 布局管理n 事件处理n 菜单(ci dn)和表格主要(zhyo)内容第1页/共133页第一页,共134页。本章(bn zhn)基本要求n了解AWT和Swingn熟悉4个顶层容器n掌握JFramen熟悉常用的中间容器n会对组件进行布局n熟悉常用基本组件的创建和操作n会设置(shzh)组件的颜色和字体n会处理组件上发生的事件n会创建菜单和表格第2页/共133页第二页,共134页。n用户界面的类型(lixng)n字符用户界面(CUI):例如,MS-DOSn图形用户界面(GUI):例如,Microsoft WindowsnGUI的组件基本的控制组件,例如:Butto
2、n、Label等。容器:能容纳和排列组件的组件组件组件继承(jchng)它的父容器的性质第3页/共133页第三页,共134页。MenuList BoxCheck BoxRadio ButtonButtonLabel Frame WindowText BoxCombo Box第4页/共133页第四页,共134页。n AWTn AWT(Abstract Window Toolkit)是在Swing出现之前用来(yn li)设计界面的工具包n 用awt包中的类创建的用户界面在不同的操作平台上有不同的表现。使用不灵活n import .*;n Swingn Swing是对AWT的扩展,它是Java 2
3、中的一个标准包n 组件都以J开头,例如:JFrame、JButton等。swing界面在不同的平台上外观完全一样,真正做到平台独立n import .*;基本(jbn)概述第5页/共133页第五页,共134页。界面设计中常用(chn yn)组件类的体系结构java.lang.Objectjava.awt.Componentjava.awt.Containerjava.awt.Paneljava.awt.Windowjava.applet.AppletJAppletjavax.swing.JComponentjava.awt.Dialogjava.awt.FrameJDialogJFrameJW
4、indowSwing组件组件第6页/共133页第六页,共134页。用户界面(yn h ji min)第7页/共133页第七页,共134页。n 一个顶层容器(即主窗口)n 顶层容器包含若干个中间(zhngjin)容器n 每个中间(zhngjin)容器包含若干个基本组件n 按照合理的布局方式将它们组织在一起n 基本组件可响应发生在其上的事件Java程序界面的构成(guchng)第8页/共133页第八页,共134页。n容器n 容器是用来容纳和管理一组界面元素的对象(duxing)。基本组件必须被安排在某个容器中,否则就无法使用。JFrameContainerJWindowJPanelJDialogJ
5、Applet有边框(binkung)容器无边框(binkung)容器第9页/共133页第九页,共134页。顶层(dn cn)容器n JFrame , JApplet , JDialog , JWindown 作用:创建初始界面,为其他组件(z jin)提供一个容器,以构建满足用户需求的操作界面n JFrame用来创建application,最常用的n JApplet用来创建appletn JDialog用来创建对话框,常用n JWindow不常用第10页/共133页第十页,共134页。n JPanel , JScrollPane , JSplitPane , JTabbedPane、JInte
6、rnalFrame、Boxn 这些容器提供将有关组件按照某种布局组合在一起,然后放入中间容器或顶层容器的功能n JPanel提供一个面板n JScrollPane是具有滚动条的窗格n JSplitPane是具有拆分功能的窗格n JTabbedPane是带有若干标签的分类窗格n JInternalFrame用于创建内嵌于JFrame中的内部框架n Box提供创建横向(hn xin)/纵向盒子容器的功能中间(zhngjin)容器第11页/共133页第十一页,共134页。n JLabeln JButton、JCheckBox、JRadioButtonn JList、JComboBoxn JTextF
7、ield、JPasswordField、JTextArean JToolBar、JToolTip、JProgressBarn JSlider、JSpinnern JFileChooser、JColorChoosern JMenuBar、JMenu、JMenuItem、JCheckBoxMenuItem、JRadioButtonMenuItem、JPopupMenun JTablen JTreen JOptionPane、JSeparator第12页/共133页第十二页,共134页。n 类 JFrame 是的子类n 在Swing的组件中, JFrame 并不全是由Java编写(binxi)的n
8、是一种与平台关系比较密切的组件(Heavyweight component)n |n +-n |n +-n |n +-n |n +-n |n +-第13页/共133页第十三页,共134页。构造方法JFrame() 创建无标题窗口。JFrame(String s) 创建标题名字是字符串s的窗口。例如:JFrame f = new JFrame(“Hello”);常用方法setTitle(String title) 设置JFrame标题文本get/ setSize():获取/设置JFrame的大小。add(Object a):将组件添加到JFrame中。dispose()关闭JFrame并回收用于
9、创建窗口的任何(rnh)资源。setVisible(boolean b)设置JFrame的可见性。setLocation(x,y) 设置JFrame在屏幕的位置第14页/共133页第十四页,共134页。n 常用方法n void setExtendedState(int);/设置扩展的状态,取值: NORMAL ICONIFIED MAXIMIZED_HORIZ MAXIMIZED_VERT MAXIMIZED_BOTH /最大化n void setDefaultCloseOperation(int);/设置默认的关闭(gunb)时的操作,取值: DO_NOTHING_ON_CLOSE HIDE
10、_ON_CLOSE DISPOSE_ON_CLOSE EXIT_ON_CLOSE /关闭(gunb)第15页/共133页第十五页,共134页。 import .*; public class FirstJFrame public static void main(String args) JFrame f = new JFrame(); f.setTitle(My First JFrame); f.setDefaultCloseOperation(); f.setSize(300, 300); f.setVisible(true); 第16页/共133页第十六页,共134页。import .*
11、; public class SecondJFrame extends JFrame public SecondJFrame() super(“My Second JFrame”); setDefaultCloseOperation(EXIT_ON_CLOSE); setExtendedState(MAXIMIZED_BOTH); setVisible(true); public static void main(String args) SecondJFrame f = new SecondJFrame(); 第17页/共133页第十七页,共134页。n相关(xinggun)类n图标类:n图
12、像类:n创建图标和图像对象nImageIcon ii = new ImageIcon(”);nImage image = ();n设置setIconImage(image);第18页/共133页第十八页,共134页。n由JFrame创建初始的用户界面n由JPanel、JScrollPane、JTabbedPane、JSplitPane、JInternalFrame、Box等创建中间容器n由基本组件类创建有关的组件n将基本组件按照(nzho)某种布局添加到中间容器中,根据需要可能会用到容器的嵌套n将中间容器按照(nzho)某种布局添加到顶层容器中,形成满足用户需求的操作界面第19页/共133页第
13、十九页,共134页。Container con = getContentPane();JPanel panel = new JPanel();JButton butt = new JButton(Press Me);panel.add(butt);con.add(panel);第20页/共133页第二十页,共134页。n 学生基本信息录入界面的设计n 设计一个用户界面,用于输入学生的下列信息:n 姓名JTextField密码JPasswordFieldn 性别JRadioButton党否JCheckBoxn 年龄JSpinner颜色 JColorChoosern 加分JSlider系别JCom
14、boBoxn 选课JList确认JButtonn 保存JFileChooser结果JTextArean 要求输入完毕按“确认”将该学生的信息记录到“结果”中;按“保存”将结果保存到一个指定的文件(wnjin)中;基本信息与结果界面上下分布在一个JSplitPane中;屏幕下方显示当前时间第21页/共133页第二十一页,共134页。步骤一:由JFrame创建初始(ch sh)的用户界面,获得JFrame的容器,添加中间容器JPanelJFrame f=new JFrame();(学生学生(xu sheng)信息管理系统信息管理系统);f.setDefaultCloseOperation(JFra
15、me.EXIT_ON_CLOSE);f.setExtendedState(MAXIMIZED_BOTH);/f.setSize(800,600);/f.setLocation(200,200);Container con=();JPanel pan=new JPanel();con.add(pan);f.setVisible(true);第22页/共133页第二十二页,共134页。基本(jbn)组件第23页/共133页第二十三页,共134页。标签 标签(JLabel)是最简单(jindn)的组件,用于显示单行静态文本。用户只能查看其内容而不能对其进行修改。 标签类没有事件响应。构造方法JLab
16、el label1 = new JLabel(“姓名”);ImageIcon ii = new ”);JLabel label2 = new JLabel(ii);JLabel label3 = new JLabel(“姓名”,);标签内容一般不需要改变,但也可以使用setText和setIcon方法进行改变例如当使用同一标签显示不同的图片时,就可使用setIcon方法实现第24页/共133页第二十四页,共134页。步骤二:添加标签(要录入的基本信息(xnx)的名称)JFrame f=new JFrame();Container con=();Jpanel pan=new JPanel();J
17、Label l_xm=new JLabel(姓名姓名(xngmng);pan.add(l_xm);JLabel l_xb=new JLabel(性别性别);pan.add(l_xb);con.add(pan);f.setVisible(true);第25页/共133页第二十五页,共134页。n按钮是常用的功能组件,表示(biosh)按钮的类为JButton。n构造方法nJButton button1 = new JButton(“姓名”);nImageIcon ii = new ImageIcon(”);nJButton button2 = new JButton(ii);nJButton b
18、utton3 = new JButton(“姓名”,ii);n常用方法nvoid setActionCommand(String);nvoid addActionListener(ActionListener);第26页/共133页第二十六页,共134页。步骤(bzhu)二:添加按钮(确认和保存按钮)JFrame f=new JFrame(); Container con=();JPanel pan=new JPanel();JLabel l_xml_xm=new JLabel(姓名姓名(xngmng);pan.add(l_xm); JButton b_sub=new JButton(确认确认
19、);pan.add(b_sub);JButton b_save=new JButton(保存保存);pan.add(b_save); con.add(pan);f.setVisible(true);第27页/共133页第二十七页,共134页。n构造方法构造方法JTextField tf1 = new JTextField(10);JTextField tf2 = new TextField(“aa”);JTextField tf3 = new JTextField(“aa”,8);ComponentTextComponentJTextFieldJTextArea单行的文本框单行的文本框多行的文
20、本区多行的文本区n其它其它(qt)方法方法n public String getText()n public String getSelectedText()n public void setText(String s)n public void setEchoChar(char c)n public void setEditable(boolean b)第28页/共133页第二十八页,共134页。步骤二:添加(tin ji)文本框(录入姓名信息)JFrame f=new JFrame(); Container con=();JPanel pan=new JPanel();JLabel l_x
21、m=new JLabel(姓名姓名(xngmng);pan.add(l_xm);JTextField tf_name=new JTextField(20);pan.add(tf_name);con.add(pan);f.setVisible(true);第29页/共133页第二十九页,共134页。n构造方法构造方法 JTextArea ta1 = new JTextArea(5,5);JTextArea ta1 = new JTextArea(5,5);JTextArea ta2 = new JTextArea(JTextArea ta2 = new JTextArea(“abab”,8,7)
22、;,8,7);ComponentTextComponentJTextFieldJTextArea单行的文本框单行的文本框多行的文本区多行的文本区n其它其它(qt)方法方法n public getCaretPosition()n public void insert(String str,int pos)n public String getSelectedText()n public int getSelectionStart()n public int getSelectionEnd()n public void replaceRange(String str,int start,int e
23、nd) 第30页/共133页第三十页,共134页。n 应用中经常将文本区对象放入一个滚动(gndng)窗格中,以使用滚动(gndng)条功能,方法如下:n JTextArea ta = new JTextArea(10,10);n JScrollPane sp = new JScrollPane(ta);第31页/共133页第三十一页,共134页。步骤二:添加文本域(显示(xinsh)录入结果信息)JFrame f=new JFrame(); Container con=();Jpanel pan=new JPanel(); Jlabel l_jg=new JLabel(录入录入(l r)结果
24、结果);JTextArea result=new JTextArea(10,30);JScrollPane sp=new JScrollPane(result);pan.add(sp); pan.add(l_jg);con.add(pan);f.setVisible(true);第32页/共133页第三十二页,共134页。n构造方法(与构造方法(与JButton类似)类似)nJRadioButton rbutt1 = new JRadioButton(“男男”, true);nImageIcon ii = new ImageIcon(”);JRadioButton rbutt2 = new J
25、RadioButton(ii);nJRadioButton rbutt3 = new JRadioButton(“女女”,ii,false);n常用常用(chn yn)方法方法nvoid addActionListener(ActionListener);nvoid addItemListener(ItemListener);nboolean isSelected();nvoid setSelected(boolean);第33页/共133页第三十三页,共134页。n 使用单选按钮时经常用到ButtonGroup类,如下(rxi)n 创建按钮组对象ButtonGroup bg = new Bu
26、ttonGroup();n 创建若干单选按钮对象JRadioButton b1 = new JRadioButton(“x”);JRadioButton b2 = new JRadioButton(“y”);n 将各单选按钮添加到按钮组中bg.add(b1);bg.add(b2);n 将单选按钮添加到其他容器中容器对象.add(b1);容器对象.add(b2);n 注:按钮组维持只有一个单选按钮处于选择状态第34页/共133页第三十四页,共134页。步骤(bzhu)二:添加单选按钮(选择性别)JFrame f=new JFrame(); Container con=();Jpanel pan=
27、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);第35页/共133页第三十五页,共134页。n构造方法构造方法nJCheckbox()创建一个没有标签的复选框。创建一个没有标
28、签的复选框。nJCheckbox( Icon icon)创建一个有图标的复选框。创建一个有图标的复选框。nJCheckbox(Icon icon ,boolean sele ) 创建一个有图标创建一个有图标icon的复选框,初始状态为的复选框,初始状态为selsnJCheckbox( String s)创建一个有标签的复选框。创建一个有标签的复选框。nJCheckbox( String s,boolean b)创建一个有标签的复创建一个有标签的复选框,参数选框,参数(cnsh)b设置初始状态设置初始状态nJCheckbox(String str ,Icon icon ) 创建一个有创建一个有s
29、tr文字文字及图标及图标icon的复选框的复选框nJCheckbox(String str,Icon icon,boolean sele) 创建一创建一个有个有str文字及图标文字及图标icon的复选框的复选框,初始状态为初始状态为sels第36页/共133页第三十六页,共134页。n 常用方法n isSelected():返回复选按钮的状态,返回类型是boolean。如果返回true,则表示该按钮处于选中状态;否则(fuz)处于未选中状态。n setSelected (Boolean state):设置复选按钮的状态。第37页/共133页第三十七页,共134页。步骤二:添加(tin ji)复
30、选框(选择爱好,多项选择)JFrame f=new JFrame(); Container con=();Jpanel pan=new JPanel(); Jlabel l_ah=new JLabel(爱好爱好(i ho);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);第38页/共133页第三十八页,共
31、134页。构造方法(fngf)String ss = “red”,”green”,”blue”;JList list1 = new JList(ss);JList list2 = new JList(Vector);其它常用方法(fngf) void addListSelectionListener();void setVisibleRowCount(int);void setSelectionMode(int);/取值如下(在ListSelectionModel中定义)SINGLE_SELECTIONSINGLE_INTERVAL_SELECTION MULTIPLE_INTERVAL_SE
32、LECTION(默认)int getSelectedIndex();int getSelectedIndices();Object getSelectedValue();Object getSelectedValues();第39页/共133页第三十九页,共134页。步骤二:添加列表框(选择(xunz)选修课程)JFrame f=new JFrame(); Container con=();Jpanel pan=new JPanel(); JLabel l_xk=new JLabel(选课选课);String coursesNames = 数据结构数据结构(sh j ji u)“,操作系统操作
33、系统“,网络网络原理原理,Java程序设计程序设计“,分布式系统开发技术分布式系统开发技术,计算机导论计算机导论“,密码学密码学,计算机组成原理计算机组成原理“,编译原理编译原理,图形学图形学”;course = new JList(coursesNames);pan.add(l_xk);pan.add(course);con.add(pan);f.setVisible(true);第40页/共133页第四十页,共134页。n 构造方法n String ss = “red”,”green”,”blue”;JComboBox cb1 = new JComboBox(ss);n JComboBox
34、 cb2 = new JComboBox(Vector);n 常用方法n addItem() 添加一个项目到 JComboBox. n get/setSelectedIndex()获取/设置 JComboBox 中选中项目的索引n get/setSelectedItem()获取/设置选中的对象。n removeAllItems()从 JComboBox 删除所有对象。n removeItem()从 JComboBox 删除特定对象。n setEditable把一个组合框设置为可编辑的。n 注意编辑只会影响当前项,它不会(b hu)改变列表的内容。第41页/共133页第四十一页,共134页。步骤
35、二:添加下拉列表(li bio)(选择院系)JFrame f=new JFrame(); Container con=();Jpanel pan=new JPanel(); JLabel l_yx=new JLabel(院系院系);pan.add(l_yx);String departmentNames = 计算机科学与技术计算机科学与技术(jsh)系系,电子信息与技术电子信息与技术(jsh)系系,计算机工程系计算机工程系”;JComboBox department = new JComboBox(departmentNames);department.setEditable(false);p
36、an.add(department); con.add(pan);f.setVisible(true);第42页/共133页第四十二页,共134页。n 构造方法(类似于JTextField)n 常用(chn yn)方法n void addActionListener(ActionListener);n char getPassword();n void setEchoChar(char);n char getEchoChar();第43页/共133页第四十三页,共134页。步骤(bzhu)二:添加密码(密码输入显示“*”)JFrame f=new JFrame(); Container con
37、=();Jpanel pan=new JPanel(); JLabel l_ma=new JLabel(密码密码(m m);pan.add(l_ma);password=new JPasswordField(20);(*);pan.add(password); con.add(pan);f.setVisible(true);第44页/共133页第四十四页,共134页。n 构造方法n JSlider slider = new JSlider(JSlider.HORIZONTAL,0,100,10);n 常用(chn yn)方法n void addChangeListener(ChangeList
38、ener);n void setValue(int);n int getValue();n void setMajorTickSpacing(int);n void setMinorTickSpacing(int);n void setPaintTicks(boolean); /falsen void setPaintLabels(boolean); /falsen void setPaintTrack(boolean); /truen void setSnapToTicks(boolean); /false第45页/共133页第四十五页,共134页。步骤二:添加加分选项(加分的选项采用滑动(
39、hudng)条实现)JFrame f=new JFrame(); Container con=();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);ad
40、dition.setSnapToTicks(true);pan.add(addition); con.add(pan);f.setVisible(true);第46页/共133页第四十六页,共134页。n 构造方法n JProgressBar(int,int,int);n JProgressBar pb = new JProgressBar( JProgressBar. HORIZONTAL, 0,100);n 常用方法n void addChangeListener(ChangeListener);n void setValue(int); /设置当前值n void setString(St
41、ring);/设置显示的字符串n void setStringPainted(boolean);/设置是否(sh fu)显示字符串,默认为falsen void setBorderPainted(boolean);/设置是否(sh fu)显示边框,默认为true第47页/共133页第四十七页,共134页。步骤(bzhu)二:添加进度条JFrame f=new JFrame(); Container con=();Jpanel pan=new JPanel(); JProgressBar progbar = new JProgressBar(JProgressBar.HORIZONTAL,0,1
42、00);progbar.setStringPainted(true);con.add(pan);f.setVisible(true);第48页/共133页第四十八页,共134页。n 构造方法n JFileChooser fc1,fc2; /声明两个对象(duxing)变量n fc1 = new JFileChooser();/使用系统默认目录n fc2 = new JFileChooser(“d:java”);n 显示方法n int showOpenDialog(Component);n int showSaveDialog(Component);/分别用于显示标准的打开和保存对话框/参数Co
43、mponent指定对话框依附的父组件/返回值:APPROVE_OPTION选择了确认 CANCEL_OPTION选择了取消 ERROR_OPTION出现了错误第49页/共133页第四十九页,共134页。 其他常用方法 void setCurrentDirectory(File); void setMultiSelectionEnabled(boolean); File getSelectedFile(); File getSelectedFiles(); File getCurrentDirectory(); String getName(File);/取得文件/目录(ml)名称,不含路径,可
44、用File类的getAbsolutePath()方法获取完整路径 void setFileSelectionMode(int);/FILES_ONLY 只能选择文件(默认) DIRECTORIES_ONLY 只能选择目录(ml) FILES_AND_DIRECTORIES 文件和目录(ml)都可选 void setFileFilter(FileFilter);第50页/共133页第五十页,共134页。n 显示方法n 使用JColorChooser提供的类方法showDialogn static Color showDialog( Component, /父组件 String, /标题 Colo
45、r /初始颜色值 );/返回值:新选择的颜色值Colorn 示例(shl)nColor c = (this,”请选择颜色”,);n/得到颜色对象c后,即可在需要的地方使用第51页/共133页第五十一页,共134页。n Confirm对话框n int showConfirmDialog(Component,Object);/显示含有 Yes、No、Cancel 按钮的确认框/参数:父组件,显示信息/返回值: YES_OPTION是 NO_OPTION否 CANCEL_OPTION撤销 OK_OPTION确定 CLOSED_OPTION关闭n 还有其他(qt)形式的类方法,请参阅帮助文档第52页/
46、共133页第五十二页,共134页。n Input对话框n String showInputDialog(Component,Object);/参数:父组件,显示信息/返回值: 选择确认后返回 输入的字符串 选择取消或关闭(gunb)后返回 nulln 还有其他形式的类方法,请参阅帮助文档第53页/共133页第五十三页,共134页。n Message对话框n void showMessageDialog(Component,Object);/参数:父组件,显示信息/没有返回值,只是用来显示一些信息n 还有其他形式的类方法(fngf),请参阅帮助文档第54页/共133页第五十四页,共134页。n
47、Option对话框n int showOptionDialog( Component, /父组件 Object, /显示信息 String, /标题 int, /标准选项按钮组类型(lixng) int, /标准信息图标类型(lixng) Icon, /自定义信息图标 Object, /自定义选项按钮组 Object /自定义默认的选项按钮 );/该方法提供了丰富且复杂的表达形式,请参阅帮助文档n 注:使用这些标准对话框,可以方便实现某些功能第55页/共133页第五十五页,共134页。微调器(JSpinner)n 构造方法n JSpinner spinner = new JSpinner();
48、n 常用(chn yn)方法n void addChangeListener(ChangeListener);n void setValue(Object);n Object getValue();n Object getNextValue();n Object getPreviousValue();第56页/共133页第五十六页,共134页。JFrame f=new JFrame(); Container con=();Jpanel pan=new JPanel(); JLabel lb=new JLabel(年龄年龄(ninlng);JSpinner jsp=new JSpinner();
49、jsp.setValue(new Integer(20);pan.add(lb);pan.add(jsp); con.add(pan);f.setVisible(true);步骤二:添加步骤二:添加(tin ji)年龄微调年龄微调器器第57页/共133页第五十七页,共134页。计时器(Timer)n 构造方法n Timer(int, ActionListener);Timer timer = new Timer(1000,this);n 常用(chn yn)方法n void start();n void stop();n void restart();n void setDelay(int);
50、n void setRepeats(boolean);n boolean isRunning();第58页/共133页第五十八页,共134页。创建边框(使用BorderFactory类的类方法)Border border1 = /创建一个具有指定颜色和宽度的线边框BorderFactory.createLineBorder(Color,int);Border border2 = BorderFactory.createTitledBorder(String); 创建一个新标题边框,采用默认设置,并指定了标题文本。Border border3 = BorderFactory. createLow
51、eredBevelBorder();创建一个具有凹入斜面边缘的边框Border border4 = ();创建一个具有凸出(t ch)斜面边缘的边框Border border5 = ();创建一个具有“浮雕化”外观效果的边框,将组件的当前背景色用于突出显示和阴影显示使用setBorder(border)方法设置组件的边框第59页/共133页第五十九页,共134页。n 分隔线(JSeparator)n 构造方法n JSeparator separator1 = new JSeparator(); /默认水平n JSeparator separator2 = new );n JSeparator
52、separator3 = new );n 使用(shyng)add(JSeparator)方法加到合适的地方第60页/共133页第六十页,共134页。n 设置颜色n 默认情况下,Java使用RGB颜色描述系统n RGB指红/绿/蓝三基色,取值范围是0,255,一种颜色就是这三种基本颜色的组合n 描述颜色的类是n 颜色对象的创建n Color c = new Color(0,255,0);n 直接使用Color类中定义的标准颜色常量如 或 等nColor c1 = ; /n C)颜色选择器JColorChooser直观得到(d do)一个Color对象n Color c3 = Dialog(Co
53、mponent,String,Color);第61页/共133页第六十一页,共134页。n有了Color对象后,可使用setForeground(Color);setBackground(Color);设置(shzh)组件的前景色和背景色第62页/共133页第六十二页,共134页。n 字体类:n 字体对象的创建n Font(String name,int style,int size); /名称,如 “隶书(lsh)” /风格,取值有 PLAIN, BOLD, ITALIC /大小,如 24,60n Font f = new Font(“宋体”,Font.BOLD,24);n 设置组件的字体n
54、 setFont(Font);第63页/共133页第六十三页,共134页。n 光标类:n 光标对象的获取(huq)n Cursor.getPredefinedCursor(int); /如:DEFAULT_CURSOR、HAND_CURSOR、WAIT_CURSOR、TEXT_CORSOR、CROSSHAIR_CURSORn 设置组件的光标n );第64页/共133页第六十四页,共134页。n JPaneln 创建对象JPanel p = new JPanel(); n 默认布局为FlowLayout,可以改变,如p.setLayout(new GridLayout(2,3);n 添加(tin
55、 ji)组件(组件对象1);(组件对象2);第65页/共133页第六十五页,共134页。n JScrollPanen JTextArea ta = new JTextArea(50,50);n JScrollPane sp = new JScrollPane(ta);n JSplitPanen JTextArea ta = new JTextArea(50,50);n JPanel p = new JPanel();n JSplitPane sp = new JSplitPane (JSplitPane. HORIZONTAL_SPLIT,ta,p);n /另一种(y zhn)方式n JSpl
56、itPane sp = newJSplitPane(JSplitPane.VERTICAL_SPLIT,true,ta,p);第66页/共133页第六十六页,共134页。n JTabbedPaneJTabbedPane 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);
57、int n = ();第67页/共133页第六十七页,共134页。JInternalFrame示例(shl):中class JInternalFrame_test第68页/共133页第六十八页,共134页。v Java用户图形界面设计用户图形界面设计(shj)步骤步骤v 根据需要往界面中添加组件根据需要往界面中添加组件v 通过布局管理器对容器中的组件进行组织排列通过布局管理器对容器中的组件进行组织排列v 如何相应用户对组件的操作,即事件处理如何相应用户对组件的操作,即事件处理第69页/共133页第六十九页,共134页。布局(bj)管理第70页/共133页第七十页,共134页。n 布局是指组件在
58、容器中的排列方式,主要有:n FlowLayout流式布局n BorderLayout边界布局n GridLayout网格布局n CardLayout卡片布局n BoxLayout盒式布局n GridBagLayout网格包布局n null空布局(不使用布局)n 注:对于一些复杂的情况,往往(wngwng)需要使用容器的嵌套,各容器可使用不同的布局。当容器的尺寸改变时,布局管理器会自动调整组件的排列第71页/共133页第七十一页,共134页。 该布局以行为单位依次排列各组件,一行排不下时,另起一行 JPanel的默认(mrn)布局是FlowLayout 构造方法 FlowLayout(); F
59、lowLayout(int align);/align一般取值有:CENTER、LEFT、RIGHT FlowLayout(int align,int hgap,int vgap);/hgap和vgap指定组件与容器起始边界以及组件间的水平和垂直间距,默认(mrn)值为5个像素 例如:FlowLayout layout = new , 10, 10);第72页/共133页第七十二页,共134页。n创建FlowLayout布局(bj)对象FlowLayout l = new FlowLayout();n创建容器对象JPanel panel = new JPanel();n设置容器对象的布局(bj
60、)或使用默认布局(bj)panel.setLayout(l);n向容器中添加组件对象(设组件对象已创建)(组件对象);第73页/共133页第七十三页,共134页。例如,setLayout(new , 10, 20);缺点(qudin):当用户对由FlowLayout布局管理的区域进行缩放时,布局发生变化。该布局适用于组件该布局适用于组件(z jin)个数较个数较少的情况。少的情况。第74页/共133页第七十四页,共134页。n 按照东、西、南、北、中5个方位排列各组件(z jin)n 顶层容器JFrame、JApplet、JDialog、JWindow的默认布局都是BorderLayout第7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家知识产权局专利局专利审查协作湖北中心2026年度专利审查员公开招聘40人备考题库含答案详解
- 厦门大学附属第一医院漳州招商局开发区分院2025年第四批公开招聘编外工作人员备考题库附答案详解
- 咸安区2026年面向教育部直属师范大学公费师范毕业生专项招聘备考题库完整参考答案详解
- 2025年西安市雁塔区第一小学教师招聘考试备考题库及答案解析
- 2025年12月云南玉溪市易门县华亿投资有限责任公司(第二次)招聘8人备考核心题库及答案解析
- 2025年卫生健康局招聘备考题库及1套参考答案详解
- 2025年第十师北屯市公安局面向社会公开招聘警务辅助人员备考题库及1套完整答案详解
- 构建区域教育评价改革模型:人工智能评价结果应用与效果评估教学研究课题报告
- 国家知识产权局专利局专利审查协作四川中心2026年度专利审查员公开招聘备考题库有答案详解
- 2025北京市海淀区海淀街道社区卫生服务中心招聘11人一备考笔试题库及答案解析
- 万物皆有欢喜时李汉荣散文集
- 颅颌面骨异常整形术后护理查房
- 儿童绘画与心理治疗课件
- 特种设备安全管理培训(培训材料)课件
- 流程设计与优化培训课件
- 文献检索与科技论文写作
- 《乡土中国》读书分享读书感悟读后感图文课件
- 高位截瘫患者的麻醉演示文稿
- ICU抗生素使用课件
- 【语文】高考60篇古诗文全项训练宝典
- 《糖尿病教学查房》课件
评论
0/150
提交评论