Java第9章(GUI-1)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.1.2 简单的框架窗口
1. 创建简单的框架窗口 每个Swing GUI的程序必须至少有一个顶层Swing容器。 对于GUI应用程序来说,一般应该有一个主窗口,也称为
框架窗口。在Swing中,框架窗口由JFrame对象实现。 JFrame类常用的构造方法: public JFrame() 创建一个没有标题的窗口对象。 public JFrame(String title) 创建一个以title为标题
图9.2 JComponent及其子类的层次结构
9.1 Java 图形界面基础
3. mponent类及其方法 JComponent抽象类是所有Swing组件的超类,其中定义了
每个组件都可以使用的方法: public void setSize(int width,int height) 设置组件
public void remove(Component comp) 从容器中清除指定 的组件。
9.1 Java 图形界面基础
4. Container类及其方法 public void setLayout(LayoutManager mgr) 设置容器
的布局。参数mgr是布局管理器对象,它决定组件在容器 中如何摆放。 public void paint(Graphics g) 在容器上绘制图形。 public void paintComponents(Graphics g) 在容器上绘 制图形。 public void update(Graphics g) 更新容器上绘制的图 形。
JButton jButton1,jButton2; public SimpleFrame(String title){
super(title); jButton1 = new JButton("OK"); jButton2 = new JButton("Cancel"); setLayout(new FlowLayout()); add(jButton1); add(jButton2); setSize(400,300); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args){ JFrame frame = new SimpleFrame("Frame With Button"); } }
9.2 容器布局
9.2.1 9.2.2 9.2.3 9.2.4 9.2.5 9.2.6
BorderLayout布局管理器 FlowLayout布局管理器 GridLayout布局管理器 其他布局管理器 面板容器及容器的嵌套 应用程序外观
AWTEvent
Panel
Applet JApplet
Color
Object Component Container
Window Frame JFrame
FontMetrics
Graphics Font
Dialog JComponent
图9.1 Java GUI所用类的层次结构图
JDialog
表9-1 构建图形用户界面常用的类
或容器的大小。 public void setVisible(boolean b) 设置组件或容器是
否可见。 public void setBackground(Color c) 设置组件的背景
颜色,Color为颜色类。 public Color getBackground() 返回组件的背景颜色,
这 个 类 用 来 处 理 图 形 和 组 件 的 颜 色 。 例 如 , 可 以 为 JFrame 、 JPanel等组件指定背景色和前景色,也可以指定绘制的线条、 图形和字符串的颜色
在使用绘图对象绘制字符串时可以指定字体,其中包括字体、字 型和大小
Applet 类 的 子 类 , 创 建 基 于 Swing 的 Java 小 应 用 程 序 需 要 继 承 JApplet类
程序9.1 HelloSwing.java
2. 继承JFrame类
程序9.1的方法在创建比较简单的窗口时还可以,如果窗 口比较复杂,就会使得main()方法的内容过多。
一般应该先创建一个继承JFrame类的子类,然后编写程序 创建该类对象。
改进的程序见下页:
程序9.2 HelloSwing1.java
JCheckBox
JEditorPane JTextField
JTextPane JPasswordField
JPanel JLabel JList JMenuBar JOptionPane JComboBox JScrollBar JScrollPane JFileChooser JPopupMenu JColorChooser JToolTip JProgressBar JTabbedPane JSlider JTable JTree
4. Container类及其方法
Container类是所有容器类的超类,在编写GUI程序时经常 要使用这个类的方法。
容器组件的特点是:容器中可以容纳其他组件,通过调用 容器的add()方法把其他组件添加到容器中。
添加到容器中的组件位置和大小由容器的布局管理器决定 (Layout Manager)。
的窗口对象。
9.1.2 简单的框架窗口
import javax.swing.*; public class HelloSwing { public static void main(String args[]){
JFrame frame = new JFrame("Hello Swing"); frame.setSize(400,240); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
9.1.3 在框架中添加组件
若向顶层容器(JFrame、JApplet、JDialog)中添加组件,可
以使用容器的add()方法实现。
import java.awt.*; import javax.swing.*; public class SimpleFrame extends JFrame{
import javax.swing.*; public class HelloSwing1 extends JFrame{
public HelloSwing1(){ this(" HelloSwing ");
} public HelloSwing1(String title){
super(title); setSize(400,250); setLocation(350,250); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String args[]){ HelloSwing1 frame = new HelloSwing1(); } }
顶级窗口。在Java图形应用程序中,它是包含其他Swing组件的最 外层容器
弹出式对话框,一般用来接收用户的输入和显示有关信息
9.1 Java 图形界面基础
2、组件分类 容器组件:容器组件分为三类:① 顶层容器:包括JFrame、
JApplet、JDialog;② 通用容器:包括JPanel、 JScrollPane、JSplitPane、JTabbedPane、JToolBar;③ 专用容器:包括JInternalFrame、JLayeredPane、 JRootPane等。 基本组件:基本组件包括JButton、JTextField、 JComboBox、JList、JMenu、JSlider。这些组件有的主要 用于信息的显示,如JLabel、JProgressBar、JToolTip等, 有的用来编辑输入信息,如JTextArea、JtextField、 JFileChooser、JColorChooser、JTable、JTree等。 菜单组件:菜单组件包括JMenuBar、JMenu、JMenuItem、 JRadioButtonMenuItem、JCheckBoxMenuItem和JPopupMenu 等。这些组件主要用于构建各种菜单。
所 有 轻 量 组 件 类 的 超 类 , 它 的 子 类 都 在 javax.swing 包 中 , 如 JButton、JLabel、JMenu、JRadioButton、JList、JTextField、 JTextArea、JscrollPane等
抽象类,提供了在容器中绘制字符串和简单图形的图形环境
9.1 Java 图形界面基础
二、Swing常用组件及分类 1、概述
Java GUI主要的包有java.awt、java.awt.event、javax.swing。 图9.1给出了有关包中常用的类及类的层次结构。该图中Applet类在 java.applet包中,以J开头的类在javax.swing包中,其他类在 java.awt包中。
9.1 Java 图形界面基础
public void setForeground(Color c) public Color getForeground() public void setFont(Font f) 设置组件上使用的字体,
Font为字体类。 public Font getFont() public Graphics getGraphics() 返回组件的图形上下文
9.1 Java 图形界面基础
4. Container类及其方法 Container类中的常用方法: public Component add(Component comp) public Component add(Component comp, int index)
向容器中添加组件,index参数指定组件添加到容器中的 位置,无index参数则添加到默认位置。
9.1 Java 图形界面基础
一、概述 1、用户界面:是用户与计算机进行交互的渠道。 通常分为:命令行式字符用户界面;图形用户界面 2、GUI(Graphical User Interface): 图形用户接口/界面. 3、Java对GUI设计的支持: 1)AWT(Abstract Windowing Toolkit):抽象窗口工具包 1995年,Java 1.0,它支持GUI编程的功能包括: 用户 界面组件;事件处理模型;图形和图像工具,包括形状、 颜色和字体类;布局管理器等。 2)Swing: 1998年,Java 1.2,轻量级组件(支持Table, Tree等),比AWT好,但不能完全替代AWT。 AWT中的 一些辅助类(如Graphics、Color、Font、 LayoutManager等)仍然保持不变。另外,Swing仍然使 用AWT的事件模型。
9.1 Java 图形界面基础
2、组件分类
AbstractButton
JComponent
JTextComponent
JCheckBoxMenuItem
JMenuItem
JMenu
JButton
JRadioButtonMenuItem
JToggleButton
JRadioButton
JTextArea
类名
含义
Component 组件类
Container 容器类
JComponent 轻量组件类
Graphics 图形类
Color
颜色类
Font JApplet JFrame JDialog
字体类 小程序类 框架窗口类 对话框类
说明
所有图形用户界面类的超类
Component类的一个子类,是一种可以容纳其他组件和容器的组 件
(graphics context)或绘图对象,Graphics为图形上下文类, 使用该类对象可以在组件上绘制图形。 public void setToolTipText(String text) 设置组件上的 提示信息。 public String getToolTipText()
9.1 Java 图形界面基础