java图形用户界面设计(3)Swing常用组件.ppt
《java图形用户界面设计(3)Swing常用组件.ppt》由会员分享,可在线阅读,更多相关《java图形用户界面设计(3)Swing常用组件.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022年年7月月5日星期二日星期二NCEPUv 编写一个计算器编写一个计算器v 所需要的知识点所需要的知识点 常用组件和容器的使用方法及功能常用组件和容器的使用方法及功能 AWT事件处理模型事件处理模型例例2022年年7月月5日星期二日星期二Swing中的容器中的容器v 顶级容器:一般是一个顶层窗口(框架)顶级容器:一般是一个顶层窗口(框架) JFrame:用于框架窗口的类,应用程序至少使用一个框架窗口。用于框架窗口的类,应用程序至少使用一个框架窗口。 JDialog:用于对话框的类。用于对话框的类。 JApplet:用于使用用于使用Swing组件的组件的JavaApplet的类。的类。v
2、中间容器:需要包含在顶层容器中使用的容器。中间容器:需要包含在顶层容器中使用的容器。 JPanel:面板,是最灵活、最常用的中间容器。面板,是最灵活、最常用的中间容器。 JScrollPane:与与JPanel类似,但还可在大的组件或可扩展组件周围类似,但还可在大的组件或可扩展组件周围提供滚动条。提供滚动条。 JTabbedPane:包含多个组件,但一次只显示一个组件。用户可在包含多个组件,但一次只显示一个组件。用户可在组件之间方便地切换。组件之间方便地切换。 JToolBar:按行或列排列一组组件(通常是按钮)。按行或列排列一组组件(通常是按钮)。2022年年7月月5日星期二日星期二与与AW
3、T组件不同,组件不同,Swing组件不能直接添加到顶层容器中,组件不能直接添加到顶层容器中,它必须添加到一个与它必须添加到一个与Swing顶层容器相关联的内容面板顶层容器相关联的内容面板(contentpane)上。)上。JFrame的使用的使用2022年年7月月5日星期二日星期二JFrame的使用的使用向向JFrame中添加组件的两种方式之一:中添加组件的两种方式之一:用用getContentPane()方法获得方法获得JFrame的内容面板,再的内容面板,再对其加入组件:对其加入组件:frame.getContentPane().add(childComponent) 在J2SE5.0中,
4、我们可以直接添加部件到最高级的Swing容器,也可以直接在容器内设置布局管理和删除部件。 这个变化允许我们可以省去调用getContentPane()而直接在容器内应用add(),setLayout()和remove()。 然而,还是不能忽略ContentPane, 比方说setBackground,需要用fr.getContentPane().setBackground(Color.blue)2022年年7月月5日星期二日星期二NCEPUJFrame的使用的使用v 当你创建一个当你创建一个JFrame的时候的时候JFrame jf = new JFrame(); 在构造方法在构造方法JFra
5、me()内部会给内部会给jf默认添加一个默认添加一个rootPane。 jf.setBackground(Color.blue); jf.getContentPane().setBackground(Color.black); import javax.swing.*; import java.awt.*; public class FrameTest extends JFrame FrameTest() super(Test); setBackground(Color.BLACK); setLayout(new GridLayout(6,6,2,2); / 1.4中问题 1 for ( in
6、t i=0;i36; i+) JPanel jPanel = new JPanel(); jPanel.setBackground(new Color (int)(Math.random()*16777215); add(jPanel); / 1.4中问题 2 setSize(400,400); setVisible(true); public static void main(String args) new FrameTest(); getContentPane().setBackground(Color.BLACK); 2022年年7月月5日星期二日星期二JFrame的使用的使用向向JF
7、rame中添加组件的两种方式之二:中添加组件的两种方式之二:把组件添加到把组件添加到Jpanel之类的中间容器中,用之类的中间容器中,用setContentPane()方法把该容器置为方法把该容器置为JFrame的内的内容面板:容面板: Jpanel contentPane=new Jpanel( );/把其它组件添加到把其它组件添加到Jpanel中中;frame.setContentPane(contentPane); 2022年年7月月5日星期二日星期二Swing常用容器常用容器JPanel的使用的使用 JPanel面板是容器组件,没有标题,不能独立存在。面板是容器组件,没有标题,不能独立
8、存在。实例化以后必须使用实例化以后必须使用Container类的类的add方法装入到方法装入到Window对象或对象或Frame对象中。对象中。可用可用javax.swing.BorderFactory类中的方法获得类中的方法获得2022年年7月月5日星期二日星期二 import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; class GUIDemo1 public static void main(String args)throws
9、Exception JFrame f=new JFrame(第一个Java窗口); f.setSize(300,200); BufferedImage image=ImageIO.read(f.getClass().getResource(/MPj.jpg); f.setIconImage(image); /设置图标 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); /设置容器可见性 f.setResizable(false); f.setLocationRelativeTo(null) ; JPanel
10、 p=new JPanel(); p.setBackground(Color.BLUE); f.setLayout(null); p.setSize(100,100); f.getContentPane().add(p); 2022年年7月月5日星期二日星期二NCEPUSwing的常用组件的常用组件JLabelv JLabel( (标签标签) )是是用户只能查看不能修改的用户只能查看不能修改的文本文本/图像图像显示区域。显示区域。 2022年年7月月5日星期二日星期二NCEPUSwing的常用组件的常用组件-JTextFieldv JTextField(JTextField(单行文本域单行文本
11、域) )是是一个单行条形文本区,能够接收输一个单行条形文本区,能够接收输入、显示输出。入、显示输出。2022年年7月月5日星期二日星期二NCEPUv获得文本域的内容获得文本域的内容x=Integer.parseInt(text1.getText().trim();v重新设置文本域的内容重新设置文本域的内容resultText.setText(s); Swing的常用组件的常用组件-JTextFieldsetText(Strings)设置文本框中的文本设置文本框中的文本getText()获取文本框中的文本获取文本框中的文本setEditable(booleanb) 指定文本框的可编辑性。创建的指
12、定文本框的可编辑性。创建的文本框默认为可编辑的文本框默认为可编辑的2022年年7月月5日星期二日星期二NCEPU获取两个文本域的输入并求和,然后显示在第三个文本域中。获取两个文本域的输入并求和,然后显示在第三个文本域中。 Swing的常用组件的常用组件JTextFieldimport javax.swing.*;import java.awt.*;import java.awt.event.*;public class TFMath public static void main(String args) new TFFrame().launchFrame();class TFFrame ex
13、tends JFrame JTextField num1, num2, num3;public void launchFrame() num1 = new JTextField(10);num2 = new JTextField(10);num3 = new JTextField(15);JLabel lblPlus = new JLabel(+);JButton btnEqual = new JButton(=);btnEqual.addActionListener(new MyMonitor();setLayout(new FlowLayout();add(num1);add(lblPlu
14、s);add(num2);add(btnEqual);add(num3);pack();setVisible(true);Swing常用的组件常用的组件文本域文本域private class MyMonitor implements ActionListener public void actionPerformed(ActionEvent e) int n1 = Integer.parseInt(num1.getText();int n2 = Integer.parseInt(num2.getText();num3.setText( + (n1+n2);2022年年7月月5日星期二日星期二N
15、CEPUSwing的常用组件的常用组件-JPasswordFieldv JPasswordField(JPasswordField(口令框口令框) )接受接受用户的输入,但不会真正显用户的输入,但不会真正显示出来,而是显示回显符。示出来,而是显示回显符。密码域密码域JPasswordFieldimport javax.swing.*;import java.awt.*;import java.awt.event.*;public class TFPassword public static void main(String args) new TFFrame2();密码域密码域JPasswor
16、dFieldclass TFFrame2 extends JFrameTFFrame2()JPasswordField pf = new JPasswordField();add(pf);pf.addActionListener(new TFActionListener2();pack();setVisible(true);密码域密码域JPasswordFieldclass TFActionListener2 implements ActionListenerpublic void actionPerformed(ActionEvent e) JPasswordField pf = (JPas
17、swordField)e.getSource();System.out.println(pf.getText();tf.setText();2022年年7月月5日星期二日星期二NCEPU密码域密码域JPasswordField2022年年7月月5日星期二日星期二NCEPUSwing的常用组件的常用组件-JPasswordField实战:实现上面的图形用户界面。2022年年7月月5日星期二日星期二NCEPUSwing的常用组件的常用组件-JTextAreav JTextArea(JTextArea(多行文本框多行文本框) )可以输入或输出多行文本。可以输入或输出多行文本。 设定是否可编辑设定是否
18、可编辑setEditable(Boolean b)JTextArea(String text, int rows,int columns) 指定文本创建文本区,指定行数和列数2022年年7月月5日星期二日星期二NCEPU换行方式:换行方式:v手动换行手动换行v自动换行:通过设置换行属性来避免手动换行。自动换行:通过设置换行属性来避免手动换行。v增加滚动条:通过把文本区插入到一个滚动窗格中来实现。增加滚动条:通过把文本区插入到一个滚动窗格中来实现。这也是给其他组件添加滚动条的方法。这也是给其他组件添加滚动条的方法。textArea.setLineWrap(true);JScrollPane sc
19、rollPane = new JScrollPane(textArea);Swing的常用组件的常用组件-JTextArea2022年年7月月5日星期二日星期二NCEPU文本区的三文本区的三种显示方式种显示方式Swing的常用组件的常用组件-JTextArea2022年年7月月5日星期二日星期二NCEPU例:创建包含例:创建包含文本区、文本框文本区、文本框和和“提交提交”按钮按钮的窗口。的窗口。 在文本区中输入文字,单击在文本区中输入文字,单击“提交提交”按钮,文本按钮,文本 框中会出现同样的文字。框中会出现同样的文字。Swing的常用组件的常用组件-JTextAreaimport java.
20、awt.*; import javax.swing.*;class JTextAreaEx extends JFrame JTextArea ta; JTextField t; JButton b; JTextAreaEx() setSize(400,250); setLayout(new FlowLayout(); Container c=getContentPane(); setVisible(true); ta=new JTextArea(5,10); /创建文本区、文本框和按钮 ta.setLineWrap(true); /自动换行,只添加垂直滚动条 JScrollPane scrol
21、lPane = new JScrollPane(ta); /加滚动条 scrollPane.setBorder(BorderFactory.createLoweredBevelBorder();/设置边界 c.add(scrollPane); t=new JTextField(10); b=new JButton(提交); c.add(b); c.add(t); pack(); public static void main(String args) JTextAreaEx tae=new JTextAreaEx(); public void actionPerformed(ActionEve
22、nt e) t.setText(ta.getText(); 2022年年7月月5日星期二日星期二NCEPU其他其他Swing组件的使用组件的使用2022年年7月月5日星期二日星期二NCEPUSwing的常用组件的常用组件复选框复选框JCheckBoxv JCheckBox(JCheckBox(复选框复选框) )有选中和未选中两种状态,允许用户从有选中和未选中两种状态,允许用户从一组选项中进行多个选择。一组选项中进行多个选择。 设置复选框的文本设置复选框的文本 setText 获取复选框的文本获取复选框的文本 getText2022年年7月月5日星期二日星期二NCEPU常用的构造方法有:常用的构
23、造方法有:JCheckBox()JCheckBox(Icon icon)JCheckBox(Icon icon, boolean selected)JCheckBox(String text)JCheckBox(String text, boolean selected)JCheckBox(String text, Icon icon)JCheckBox(String text, Icon icon, boolean selected)Swing的常用组件的常用组件复选框复选框JCheckBox2022年年7月月5日星期二日星期二NCEPUJCheckBox的相关事件类的相关事件类v 事件响应
24、事件响应 用户点击复选框使其选中状态发生变化时会引发用户点击复选框使其选中状态发生变化时会引发ItemEvent事件。事件。 实现实现ItemListener接口的接口的itemStateChanged()方法。方法。 publicvoidaddItemListener(ItemListenerl)设置复选框的事件监听器。设置复选框的事件监听器。查阅JDK文档,学习ItemEvent类的常用方法。2022年年7月月5日星期二日星期二NCEPU例题:创建如下窗口,包含三个复选框和一个面板,选中例题:创建如下窗口,包含三个复选框和一个面板,选中某一复选框后,面板的背景色就变成相应的颜色。某一复选框
25、后,面板的背景色就变成相应的颜色。Swing的常用组件的常用组件复选框复选框JCheckBoximport java.awt.*;import java.awt.event.*;public class CheckBoxExp implements ItemListener Frame f; Panel p1, p2;Checkbox ck1,ck2,ck3;public void display() f = new Frame (复选框练习); ck1=new Checkbox(红色); ck2=new Checkbox(黄色); ck3=new Checkbox(蓝色); p1=new P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 图形 用户界面 设计 Swing 常用 组件
限制150内