java Swing基础.ppt
javaSWING讲解PPT课件
第19页/共40页
BorderLayout布局管理器 • BorderLayout型布局容器尺寸缩放原则:
说明
将项添加至项的列表
返回指定索引位置的列表项
返回列表(作为对象)中的项数 将当前选择的项作为一个对象返回
返回当前选择项的索引位置
第15页/共40页
布局管理器
• 用户界面上的GUI组件可以按照一定的格式布局 例如水平排列,或按网格方式排列
• 布局管理器类是一组类,它 • 实现 java.AW youtManage r 接口 • 帮助在容器中放置组件
位置属性,如果试图使用Java语言提供的setLocation(),setSize(),setBounds()等方法,则都会被 布局管理器覆盖。 • 如果用户确实需要亲自设置组件大小或位置,则应取消该容器的布局管理器,方法为:
• setLayout(null)
第22页/共40页
课堂练习
第23页/共40页
SWING容器组件1
Swing 应用程序
主窗口
内容面板
第3页/共40页
顶层容器(每个应用 程序中至少有一个)
主要显示区域包含 GUI 中的可视组件
创建顶层容器
创建容器
设置容器大小 (对框架及面板而言)
设置容器可见度 (对框架及面板而言)
SWING容器组件2
javax.swing 包
常见容器
JFrame
Java实用教程第18讲 java swing幻灯片PPT
精品文档
18.3.2 FlowLayout
• FlowLayout是JPanel的默认布局方式。使用 FlowLayout布局方式的容器中,组件按照加入 的先后顺序按照设置的对齐方式(居中、左对 齐、右对齐)从左向右排列,一行排满后再从 下一行开始继续排列。
• 在这种布局方式中,组件的大小不会随着容器 大小的变化而改变,其位置可能会发生改变。
精品文档
18.3.3 GirdLayout
• GridLayout是把容器分成M×N个网格,M 是行数,N是列数,M和N的值可以在创 建GridLayout的对象时确定。组件按照从 左到右,从上到下的顺序放入容器,容 器大小改变时,组件的相对位置不变, 大小会改变。
18.2.1 顶层容器
• Swing中的JFrame、JDialog、JApplet和JWindow直接继承 了AWT组件,它们是重量级的,被称为顶层容器。
• (1)JFrame继承自AWT中的Frame类,通常作为主窗体 使用。
• (2)JDialog用于创建对话框,对话框不能单独存在,必 须借助于窗体。
• BorderLayout 是JFrame的默认布局,可以直接 通过add()方法为其添加组件,默认情况下组件 被放在JFrame的中心位置,并且组件向四周扩 展,占满整个JFrame,BorderLayout的特点:
• (1)把容器分为五个方位:东、西、南、北、 中,组件按照方位被添加到容器。
• (2)组件的大小占满整个所属方位,组件的 大小随着容器的变化而变化。
• (3)JApplet可作为Java小应用程序的窗体,被嵌入到网 页中运行。
第十讲Swingppt课件
Swing简介
AWT是Swing的基础。Swing的产生主要原 因就是AWT不能满足图形化用户界面发展的 需要。
AWT设计的初衷是支持开发小应用程序的简 单用户界面。例如AWT缺少剪贴板、打印支 持、键盘导航等特性,而且原来的AWT甚至 不包括弹出式菜单或滚动窗格等基本元素。
Swing组件的分类
JComponent类的特殊功能又分为:
1) 边框设置:使用setBorder()方法可以设置组件外围的边框, 使用一个EmptyBorder对象能在组件周围留出空白。
2) 双缓冲区:使用双缓冲技术能改进频繁变化的组件的显示效 果。与AWT组件不同,JComponent组件默认双缓冲区,不必 自己重写代码。如果想关闭双缓冲区,可以在组件上施加 setDoubleBuffered(false)方法。
Swing简介
Swing外观感觉采用可插入的外观感觉 (Pluggable Look and Feel,PL&F)
在AWT组件中,由于控制组件外观的对等类 与具体平台相关,使得AWT组件总是只有与 本机相关的外观。Swing使得程序在一个平 台上运行时能够有不同的外观。用户可以选 择自己习惯的外观。以下三幅图是在同一个 操作系统下得到不同的外观。
Jpanel contentPane=new Jpanel( ); ……//把其它组件添加到Jpanel中; frame.setContentPane(contentPane); //把contentPane对象设置成为frame的内容面板
4、SwingBiblioteka 容器--Frame根面板提供的方法: Container getContentPane(); //获得内容面板 setContentPane(Container); //设置内容面 JMenuBar getMenuBar( ); //活动菜单条 setMenuBar(JMenuBar); //设置菜单条 JLayeredPane getLayeredPane(); //获得分层面板 setLayeredPane(JLayeredPane); //设置分层面板 Component getGlassPane(); //获得玻璃面板 setGlassPane(Component); //设置玻璃面板
JavaSwing精品PPT课件
KDMenu
KDMenuItem
KDFormattedTextField
KDNumberTextField KDBusiCurrencyField,KDPanel
KDScrollBar, …
组合控件:由元控件组合而成的控件。
KDComboBox KDList KDTree KDDatePicker
KDTable
2 文本显示控件 com.kingdee.bos.ctrl.swing.KDLablel
P8
应用场景分类2
窗口系列控件
窗体 com.kingdee.bos.ctrl.swing.KDFrame
对话框 com.kingdee.bos.ctrl.swing.KDDialog
内部窗体 com.kingdee.bos.ctrl.swing.KDInternalFrame
菜单栏 com.kingdee.bos.ctrl.swing.KDMenuBar
状态栏 com.kingdee.bos.ctrl.swing.KDStatusBar
按钮类型控件
功能按钮 com.kingdee.bos.ctrl.swing.KDButton
Chapter5_Java Swing基础
JCheckBox其它常用方法
• • • • • public void setIcon(Icon defaultIcon) public Icon getIcon() public void setEnabled(boolean b) public void setText(String text) public String getText()
JButton其他常用方法
• • • • public void setText(String text) public String getText() public void setIcon(Icon defaultIcon) public Icon getIcon()
– Icon为接口,ImageIcon图像图标类实现了Icon接口。
– 调用 paint(g)。
• public void setDefaultCloseOperation(JFrame.EXIT_ON_CL OSE); //关闭窗体
【例5-1】 使用JFrame类建立一个窗 体
拆分面板类JSplitPane
• JSplitPane用于分隔两个(只能两个)组件。 • 拆分方式:JSplitPane.HORIZONTAL_SPLIT JSplitPane.VERTICAL_SPLI getSelectedIcon() – public void setSelectedIcon(Icon selectedIcon)
JCheckBox复选框
JCheckBox构造方法
• • • • • • • public JCheckBox() public JCheckBox(Icon icon) public JCheckBox(Icon icon, boolean selected) public JCheckBox(String text) public JCheckBox(String text, boolean selected) public JCheckBox(String text, Icon icon) public JCheckBox(String text, Icon icon, boolean selected)
javaSwing和事件精品PPT课件
setSize(int width, int height) :调整组件的大小,使其宽度为 width, 高度为 height
void setTitle(String title) :将此窗体的标题设置为指定的字符串 setVisible(boolean b) :根据参数 b 的值显示或隐藏此 Window。
JPasswordField(String text, int columns) 构造一个利用指定文本和列初始化的新 JPasswordField。
(五)JBቤተ መጻሕፍቲ ባይዱtton
JButton(Icon icon) 创建一个带图标的按钮。
JButton(String text) 创建一个带文本的按钮。
JButton(String text, Icon icon) 创建一个带初始文本和图标的按钮。
JLabel :标签
JButton :按钮
JTextField :文本域
JCheckbox :多选框
JRadioButton :单选框
JComboBox :组合列表
JList
:列表
JMenubar-JMenu-JMenuItem :菜单
一般我们使用自定义窗体,去继承JFrame,并实现一些监听接口, 将其中的控件组件,定义成自定义窗体类的私有成员变量, 在自定义窗体类的构造方法里初始化控件组件, 实现监听接口的方法。
尾部
3、在MyJFrame中添加JPanel
(三) 标签JLabel
JLabel用来描述静态信息,它不仅可以显示文字,还可以显示图标。 1、构造方法
JLabel() 创建无图像并且其标题为空字符串的 JLabel。
JLabel(Icon image) 创建具有指定图像的 JLabel 实例。JLabel(Icon image,
JavaSwing界面设计(所有控件及示例)PPT课件
选课 JList
确认 JButton
保存 JFileChooser
结果 JTextArea
要求输入完毕按“确认”将该学生的信息记录到“结果”中;按
“保存”将结果保存到一个指定的文件中;基本信息与结
果界面上下分布在一个JSplitPane中;屏幕下方显示当前
时间
22
示例:学生信息管理系统
步骤一:由JFrame创建初始的用户界面,获得JFrame的容器,
JInternalFrame、Box等创建中间容器 ③ 由基本组件类创建有关的组件 ④ 将基本组件按照某种布局添加到中间容器中,根据需
要可能会用到容器的嵌套 ⑤ 将中间容器按照某种布局添加到顶层容器中,形成满
足用户需求的操作界面
20
获得JFrame的容器并添加组件
Container con = getContentPane(); JPanel panel = new JPanel(); JButton butt = new JButton("Press Me"); panel.add(butt); con.add(panel);
3
用户界面概述
一.用户界面的类型
字符用户界面(CUI):例如,MS-DOS 图形用户界面(GUI):例如,Microsoft Windows
二.GUI的组件
组件
基本的控制组件,例如:Button、Label等。 容器:能容纳和排列组件的组件
组件继承它的父容器的性质
4
Label
Frame Window
ng.Object
ponent
java.awt.Container
java.awt.Panel
java.awt.Window javax.swing.JComponent
JAVA开发培训讲义(Swing入门).ppt
JAVA开发培训讲义(Swing入门).pptSwing初级知识的事件机制桌面应用程序展示界面所用一套组件。
与平台无关丰富的层次结构适应编写丰富用户感受的界面是我们开发软件的最主要界面表现形式Component Container JComponentJCheckBox JRadioButton JButtonWindowFrame JFrameJMenuBarJToolBarJTabbedPanelJComboBoxJLabelJProcessBarJTableJTreeJTextField类型|长宽Key | Focus | paint上层组件的基类行高|颜色|字体|布局|类最基本的事件:Mouse|Key | Focus |paintpaintComponents(Graphics g)|如果有子组件8 int Sy = (rec.height -hh)/2;9 if ( im instanceof ImageIcon ){10 ImageIcon pImage = (ImageIcon)im;g.drawImage(pImage.getImage(), Sx, Sy,ww,hh,this);14 im.paintIcon( null,g2, Sx, Sy );2 public void mousePressed(MouseEvent e);3 public void mouseReleased(MouseEvent e);4 public void mouseEntered(MouseEvent e);Listener(…)加入事件侦听JComponent.addMouseListener( Listener(…)加入事件侦听JComponent.addKeyListener()加入事件侦听它组件|显示图片套的方式实现复杂界面布局于分组组件布局1 border1 = BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140));2 titledBorder1 = new TitledBorder(border1,"带标题的Panel");容纳更多的信息图标、标题之前标签内容”);2 CLCaption.setText(“新的标签内容”);3 CLCaption.setIcon(…);2 CEField.addCaretListener(new CaretListener() {public void caretUpdate(CaretEvent e) {如果改变了内容,就可以即时更新label 显示的内容label.setText(textField.getText());8 CEField.select(0,0);。
JavaSwing图形界面开发(第8章).ppt
8.1.3 使用ListModel方式创建列表框 ListModel是一个接口,其主要功能是定义一些方法, 让JList组件取得每个项目的值,并可限定项目的显示时间
与方式。
表8.1 ListModel接口定义的方法
8
AbstractListModel抽象类:
只有实现ListModel接口中的所有方法,才能利用构造器建立JList。
第8章
如何使用列表框和下拉列表框组件
列表框---将“所有选项”都列在框中,提供用户选择。
下拉列表框---用户未操作列表框时,只显示出一个数据。但当单击
下拉箭头时,数据将以下拉方式显示。
说明:列表框、下拉列表框均属于“选择性组件”。虽然用途相同,
但各有其使用环境。 一般用法:当数据较少时,使用列表框; 当数据较多时,尽量使用下拉列表框。
表8.2 下拉列表框的构造器
说明:与JList一样,可通过“数组”和“Vector”创建下拉列表框对象。
21
8.2.1 使用数组和Vector创建下拉列表框
22
运行结果:
说明:● 使用Vector和数组差不多。 ● JComboBox控件有addItem方法,此方法在 JList中不具备。
映山红
JList类中“addListSelectionListener()”方法,可 检测用户是否对JList的选取有任何改变。 ListSelectionListener接口中只定义一个方法,即: valueChanged(ListSelectionEvent e);
只有实现这个方法,才能在用户改变选取值时,取得
9
AbstractListModel程序示例:
通过创建一个“实现了抽象类AbstractListModel”的“DataModel类”来创 建一个列表框。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
public static void main(String[] args) { JFrame frame = new JFrame("JFrame演示"); JLabel label = new JLabel("我是JLabel"); JButton button = new JButton("我是JButton");
JToggleButton
JMenuItem
JCheckBox JRadioButton
JMenu
Swing的层次结构
JButton
第13章 Swing基础
13.1 Swing基础
Swing中的可视化组件均以J字母开头,其可以分为 容器类组件和非容器类组件两大类。
Swing容器类组件有两种: 顶级容器: JFrame,JDialog,JApplet 中间容器 :JPanel,JScrollPane JTabbedPane,JToolBar ……
第13章 Swing基础
13.2 Swing典型组件
【例题13-1】 JFrame演示
public class JFrameDemo {
public static void main(String[] args) { JFrame frame = new JFrame("JFrame演示"); JLabel label = new JLabel("我是JLabel"); JButton button = new JButton("我是JButton");
JButton
JLabel
JTextField
中间容器(JPanel) 内容窗格(contentPane)
JTable
顶级容器(JFrame等)
Swing组件的包含关系
第13章 Swing基础
13.2 Swing典型组件
JFrame 框架窗口类,是放置其他 Swing 组件的顶级容器。 构造函数: JFrame() JFrame(String Title)
JButton 按钮类,允许用图标、字符串或两者构造按钮。 构造函数: JButton() JButton(Icon icon) JButton(String text) JButton(String text, Icon icon)
第13章 Swing基础
13.1 Swing基础
Swing非容器类组件有: JButton,JLabel,JTextField, JTextArea,JCheckBox,JRadioButton JList,JComboBox, JMenuItem ……
第13章 Swing基础
13.1 Swing基础
JFrame.EXIT_ON_CLOSE); frame.setSize(300, 200); frame.setLocation(500,300); frame.setVisible(true); } }
第13章 Swing基础
第13章 Swing基础
13.2 Swing典型组件
【例题13-2】 JFrame演示(不使用ContentPane)
第13章 Swing基础
第13章 Swing基础
13.2 Swing典型组件
JLabel 标签类,既可以显示文本也可以显示图像。 构造函数: JLabel(Icon icon) JLabel(String text,Icon icon,int align)
第13章 Swing基础
13.2 Swing典型组件
第13章 Swing基础
13.1 Swing基础
AWT(Abstract Window Toolkit)是JDK的一个子集, 其中提供了大量用于创建用户界面和绘制图形图像的类和 接口, AWT中的组件均是重量组件 。
重量组件通过委托对等组件来完成具体工作,如组件 的绘制和事件响应等,其缺陷是开销大、效率低,并且受 到底层平台对等组件的限制,具有严重平台相关性。
第13章 Swing基础
13.1 Swing基础
Swing是AWT的扩展,它提供了更强大和更灵活的组 件集合,Swing组件是纯Java代码开发的,除了几个顶层 容器(JFrame,JDialog,JApplet)是重量组件外,其余 均为轻量组件。
轻量组件是通过Java绘图技术在其容器内绘制出来的, 其组件的绘制和事件响应的开销要小很多,在不同平台上 表现一致,具有平台无关性,同时提高了程序运行效率。
第13章 Swing基础
frame.getContentPane().setLayout( new FlowLayout());
frame.getContentPane().add(label); frame.getContentPane().add(button); frame.setDefaultCloseOperation(
第13章 Swing基础
Object
Component Container
Window
Frame JFrame
Dialog JDialog
JComponent
JText JComboBox
JLabel JList JMenuBar JOptionPane JPanel JScrollBar AbstractButton
第13章 Swing基础
第13章 Swing基础
13.1 Swing基础 13.2 Swing典型组件
第13章 Swing基础
13.1 Swing基础
Java 技术支持图形用户界面GUI程序设计,在JDK 中也提供了丰富的GUI设计相关的API,主要分为AWT和 Swing两大系列 ,两者间存在紧密联系而非完全独立,其 运行原理(事件处理机制)是完全相同的。
第13章 Swing基础
frame.setLayout(new FlowLayout()); frame.add(label); frame.add(button); frame.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE); frame.setSize(300, 200); frame.setLocation(500, 300); frame.setVisible(true); } }