java swing 图形界面.ppt
《java swing 图形界面.ppt》由会员分享,可在线阅读,更多相关《java swing 图形界面.ppt(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、案例案例7:使用:使用Swing实现学生成绩查询系统实现学生成绩查询系统基本功能,包括用户登录、教师成绩输入基本功能,包括用户登录、教师成绩输入与统计和学生成绩查询与统计和学生成绩查询。浙江工业大学浙江工业大学 计算机学院计算机学院赵小敏赵小敏涉及知识点n1、容器组件、容器组件n2、基本组件、基本组件n3、布局管理器、布局管理器n4、事件处理模型、事件处理模型n5、高级图像用户界面、高级图像用户界面7.1 容器组件容器组件 nJFramenJPanelnJScrollPaneJScrollPane1、JFrame(框架)n类类 JFrame 是是java.awt.Frame的子类的子类n在在S
2、wing的组件中的组件中,JFrame 并不全是由并不全是由Java编写的编写的q是一种与平台关系比较密切的组件是一种与平台关系比较密切的组件(Heavyweight component)java.lang.Object|+-java.awt.Component|+-java.awt.Container|+-java.awt.Window|+-java.awt.Frame|+-javax.swing.JFrame例1:基于AWT实现的框架界面1.import java.awt.*;2.public class FrameDemo3.Frame f;4.Button b;5.public Fra
3、meDemo()6.f=new Frame(Frame Demo);7.b=new Button(Press me);8.f.add(b);9.f.setSize(200,200);10.f.setVisible(true);11.12.public static void main(String args)13.new FrameDemo();14.15.例2:基于Swing实现的框架界面1.import java.awt.*;2.import javax.swing.*;3.public class JFrameDemo4.JFrame f;5.JButton b;6.Container
4、c;7.public JFrameDemo()8.f=new JFrame(JFrame Demo);9.b=new JButton(Press me);10.c=f.getContentPane();11.c.add(b);12.f.setSize(200,200);13.f.setVisible(true);14.15.public static void main(String args)16.new JFrameDemo();17.18.在JFrame中加入组件的方法1)用getContentPane()方法获得JFrame的内容面板,再对其加入组件:Containerc=frame.
5、getContentPane()c.add(childComponent)2)建立一个JPanel或JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板:JPanelcontentPane=newJPanel();/把其它组件添加到Jpanel中;frame.setContentPane(contentPane);/把contentPane对象设置成为frame的内容面板2、JPanel(面板)n一种中间容器,用来组成其它组件一种中间容器,用来组成其它组件n可以添加各种组件可以添加各种组件(包括面板组件包括面板组件
6、)q面板面板(JPanel)的大小由它所包含的组件决定的大小由它所包含的组件决定q当组件个数增加,面板当组件个数增加,面板(JPanel)也会随之而增大也会随之而增大例3:利用JPanel创建界面1.import java.awt.*;2.import javax.swing.*;3.public class JPanelDemo extends JFrame4.public JPanel getGUI()5.JPanel p=new JPanel();6.p.add(new JButton(Press me);7.return p;8.9.public JPanelDemo()10.supe
7、r(JPanel Demo);11.setContentPane(getGUI();12.setSize(200,200);13.setVisible(true);14.15.public static void main(String args)16.new JPanelDemo();17.18.1.import java.awt.*;2.import javax.swing.*;3.public class JPanelDemo extends JFrame4.public JPanel getGUI()5.JPanel p=new JPanel();6.p.add(new JButton
8、(Press me);7.return p;8.9.public static void main(String args)10.JPanelDemo jp=new JPanelDemo();11.jp.setTitle(JPanel Demo);12.jp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);13.jp.setContentPane(jp.getGUI();14.jp.setSize(200,200);15.jp.setVisible(true);16.17.3、Swing的组件的组件l在javax.swing包中,定义了两种类型的组
9、件:容器和组件。n容器容器q各种组件必须放在容器各种组件必须放在容器q容器本身也是一种组件容器本身也是一种组件q分类分类n顶层容器顶层容器,如如JFrame,JApplet,JDialog和JWindown其它容器其它容器,如如JPanel,JScrollPane,JSplitPane,JToolBarn组件组件q基本控制组件基本控制组件,如如JButton,JComboBox,JList,JMenu,JSlider,JTextFieldq不可编辑的信息显示组件,如不可编辑的信息显示组件,如JLabel,JProgressBar,JToolTipq可编辑的信息显示组件,如可编辑的信息显示组件,
10、如JColorChooser,JFileChooser,JTable,JTextArea4、Swing的类层次结构的类层次结构nSwing的类层次结构java.awt.Component|java.awt.Containerjava.awt.Windowjava.awt.Framejavax.swing.JFramejavax.Dialogjavax.swing.JDialogjavax.swing.JWindowjava.awt.Applet-javax.swing.JAppletjavax.swing.Boxjavax.swing.JComponet7.2基本组件基本组件n标签标签(JLa
11、bel)n文本框文本框(JTextField)n按钮按钮(JButton)n组合框组合框(JComboBox)n文本文本(JTextArea)n列表列表JList(单选列表和多选列表单选列表和多选列表)1、标签标签(JLabel)n标签标签q为为GUI提供文本提供文本(主要主要)或图像或图像(也可以也可以)信息信息q对应类对应类(JLabel)(JComponent的子类的子类)q可以显示可以显示:n单行的只读的文本信息单行的只读的文本信息n图像图像n同时显示文本与图像信息同时显示文本与图像信息q程序一般不修改标签的内容程序一般不修改标签的内容例4:JLabel的演示例子1.import ja
12、va.awt.Container;2.import java.awt.FlowLayout;3.import javax.swing.ImageIcon;4.import javax.swing.JFrame;5.import javax.swing.JLabel;6.public class JLabelDemo extends JFrame7.public JLabelDemo()8.super(框架和标签例程框架和标签例程);9.String s=文本标签文本标签,文字在图标的左侧文字在图标的左侧,文字在图标的下方文字在图标的下方;10.ImageIcon ic=null,new Ima
13、geIcon(img1.gif),11.new ImageIcon(img2.gif);12.int ih =0,JLabel.LEFT,JLabel.CENTER;13.int iv =0,JLabel.CENTER,JLabel.BOTTOM;14.Container c=getContentPane();15.c.setLayout(new FlowLayout(FlowLayout.LEFT);例4:JLabel的演示例子(续)pfor(int i=0;i0)s aLabel.setHorizontalTextPosition(ihi);t aLabel.setVerticalText
14、Position(ivi);u v aLabel.setToolTipText(第第+(i+1)+个标签个标签);w c.add(aLabel);x y z public static void main(String args)aa JLabelDemo app=new JLabelDemo();bb app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);cc app.setSize(360,150);dd app.setVisible(true);ee ff 2、文本框、文本框(JTextField)q显示单行的文本信息显示单行的文本信息qJ
15、TextField extends JTextComponentq密码输入框密码输入框JPasswordField例5:JTextField的演示例子1.import java.awt.Container;2.import java.awt.FlowLayout;3.import javax.swing.JFrame;4.import javax.swing.JPasswordField;5.import javax.swing.JTextField;6.public class JTextFieldDemo7.public static void main(String args)8.JFr
16、ame app=new JFrame(文本编辑框例程文本编辑框例程);9.app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);10.app.setSize(320,120);11.Container c=app.getContentPane();12.c.setLayout(new FlowLayout();13.JTextField t=14.new JTextField(正常文本正常文本:,8),new JTextField(显示显示,15),15.new JTextField(密码文本密码文本:,8),new JPasswordField
17、(隐藏隐藏,15);16.t0.setEditable(false);17.t2.setEditable(false);18.for(int i=0;i4;i+)19.c.add(ti);20.app.setVisible(true);21.22.3、按钮、按钮(JButton)n当鼠标左键单击按钮组件时,能触发特定的事当鼠标左键单击按钮组件时,能触发特定的事件件n在在Java中中,广义的按钮包括广义的按钮包括:q命令式按钮命令式按钮(JButton)q复选框复选框(JCheckBox)q单选按钮单选按钮(JRadioButton)按钮类的层次结构按钮类的层次结构javax.swing.JCo
18、mponentjavax.swing.AbstractButtonjavax.swing.JButtonjavax.swing.JToggleButtonjavax.swing.JCheckBoxjavax.swing.JRadioButton1.2.Container c=getContentPane();3.c.setLayout(new FlowLayout();4.int i;5.ImageIcon ic=new ImageIcon(left.gif),6.new ImageIcon(right.gif);7.JButton b=new JButton(左左,ic0),new JBut
19、ton(中间中间),8.new JButton(右右,ic1);9.for(i=0;i b.length;i+)10.c.add(bi);11.JCheckBox ck=new JCheckBox(左左),new JCheckBox(右右);12.for(i=0;ick.length;i+)13.c.add(cki);14.cki.setSelected(true);15.16.JRadioButton r=new JRadioButton(左左),new JRadioButton(右右);17.ButtonGroup rg=new ButtonGroup();18.for(i=0;i r.l
20、ength;i+)19.c.add(ri);20.rg.add(ri);21.22.r0.setSelected(true);23.r1.setSelected(false);24.4、组合框组合框(JComboBox)n组合框组合框(JComboBox)q可以从下拉式的列表框中选取其中的列表项可以从下拉式的列表框中选取其中的列表项q有时也称为下拉框有时也称为下拉框(drop-down list)n类类JComboBox中的方法中的方法qgetSelectedIndex()n返回当前被选中的项返回当前被选中的项qsetMaximumRowCount(n)n设置最多显示列表项的项数设置最多显示列
21、表项的项数q滚动条滚动条(Scrollbar)会自动加上会自动加上5、文本文本(JTextArea)lJTextArea是一个显示纯文本的多行区域。lJTextArea不管理滚动,可把它放置在JScrollPane的ViewPort中实现滚动,如:JTextAreatextArea=newJTextArea();JScrollPanearea=newJScrollPane(textArea);lTextArea具有换行能力,JTextArea默认为不换行,需设置换行策略,如:textArea.setLineWrap(true);textArea.setWrapStyleWord(true);J
22、TextArea的代码段的代码段1.2./建立容纳文本区的面板建立容纳文本区的面板3.JPanel textPanel=new JPanel();4./新建无回绕的文本区,行数为新建无回绕的文本区,行数为5,列数为,列数为205.noWrapArea=new JTextArea(nowrap,5,20);6./新建有回绕的文本区,行数为新建有回绕的文本区,行数为5,列数为,列数为207.wrapArea=new JTextArea(wraparea,5,20);8.wrapArea.setLineWrap(true);9./新建带滚动条的文本区,行数为新建带滚动条的文本区,行数为5,列数为,列
23、数为2010.scrollArea=new JTextArea(scrollarea,5,20);11./将文本区插入到滚动窗格中将文本区插入到滚动窗格中12.JScrollPane scrollPane=new JScrollPane(scrollArea);13.textPanel.add(noWrapArea);14.textPanel.add(wrapArea);15./将滚动窗格加入到框架中将滚动窗格加入到框架中16.textPanel.add(scrollPane);17.6、列表列表JListnJList显示出一系列选项,用户可以从中选择一个或多项。1.StringcolorNa
24、mes=“Black”,“Blue”,“Cyan”,“DarkGray”,“Gray“;2.colorList=newJList(colorNames);3.colorList.setVisibleRowCount(5);4.colorList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);5.colorList.getSelectedIndex();6.colorList.getSelectedValue();多选列表在在JListJList中选择多个选项,方法是按住中选择多个选项,方法是按住shiftshift键或键或ctrlc
25、trl键。键。多选列表没有和多个选择相关的事件。通常由另多选列表没有和多个选择相关的事件。通常由另一个一个GUIGUI组件生成的事件(外部事件)来指定处理组件生成的事件(外部事件)来指定处理JListJList中的多个选择。中的多个选择。多选列表的使用方法1.String colorNames=“Black”,“Blue”,“Cyan”,“Dark Gray”,“Gray“;2.JList colorList=new JList(colorNames);3.colorList.setVisibleRowCount(5);4.colorList.setFixedCellHeight(15);5.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java swing 图形界面
限制150内