java day9

第九章 使用swing

  • 9.1 创建应用程序
    • 9.1.1 创建页面
    • 9.1.2 开发框架
    • 9.1.3 创建组件&& 9.1.4 将组件加入到容器中
  • 9.2 使用组件
    • 9.2.1 图标
    • 9.2.2 标签
    • 9.2.3 文本框
    • 9.2.4 文本区域
    • 9.2.5 可滚动窗格
    • 9.2.6 复选框和单选按钮
    • 9.2.7 组合框
    • 9.2.8 列表

9.1 创建应用程序

import javax.swing.*;

使用Swing组件时,实际操纵的是该组件类的对象。您通过调用构造函数来创建组件,然后调用相应的方法来正确的设置组件。所有的Swing组件都是抽象类JComponent的子类。

组件必须添加到容器(container)中后,才能显示在用户界面上。容器是可以放置其他组件的组件

9.1.1 创建页面

在很多项目中,主界面对象都是框架(JFrame类)。框架是用户在计算机上启动应用程序时显示的窗口,无论该程序是使用哪种语言编写的。

public class FeedReader extends JFrame{
	// body of class
}

将界面声明为JFrame的子类,这个类的构造函数需要完成下列几项工作:

  • 调用超类的构造函数,给框架指定标题以及完成其他设置
  • 设置框架的大小,指定宽高或让swing选择大小
  • 决定用户关闭窗口时怎么办
  • 显示框架
setTitle(String)
// 设置标题

setSize(int,int)
// 设置宽和高

pack()
// 根据框架包含的组件大小相应的调整框架大小

show()
setVisible(boolean)
// 使框架可见

setBounds(int,int,int,int)
// 指定框架位置,前两个参数是框架左上角的(x,y)坐标,后两个是框架
// 的宽度和高度

setDefaultCloseOperator()
- EXIT_ON_CLOSE  // 框架关闭时退出程序
- DISPOSE_ON_CLOSE 
// 框架关闭时释放java虚拟机(JVM)内存中的框架对象,并继续运行应用程序。
- DO_NOTHING_ON_CLOSE // 让框架打开并继续运行程序
- HIDE_ON_CLOSE // 关闭框架并继续运行程序

前面说过,使用java编程时可定制用户界面的整体外观。Swing的这方面由javax.swing包中的UIManager类管理。要设置外观,可调用类方法setLookAndFeel(String),并将外观类的名称作为参数。下面的代码演示了如何将外观指定为Nimbus:

UIManeger.setLookAndFeel(
	"com.sum.java.swing.plaf.nimbus.NimbusLookAndFeel"
	);

应将上述方法调用放在try-catch块内,因为它可能引发5种不同的异常。在不支持Nimbus的环境中,可捕获Exception异常并忽略它,这样将使用默认外观。

9.1.2 开发框架

import javax.swing.*;

public class SimpleFrame extends JFrame {
    public SimpleFrame() {
        super("Frame Title");
        setSize(300, 100);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLookAndFeel();
        setVisible(true);
    }

    private static void setLookAndFeel() {
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (Exception exc) {
            // ignore error
        }
    }

    public static void main(String[] args) {
        setLookAndFeel();
        SimpleFrame sf = new SimpleFrame();
    }
}

java day9_第1张图片

9.1.3 创建组件&& 9.1.4 将组件加入到容器中

JButton play =new JButton("play"); //创建名为play的按钮
JPanel panel = new JPanel(); // 创建容器
panel.add(quit); // 将按钮添加到容器中

9.2 使用组件

setEnable(boolean)
// 决定组件是否被启用

isEnabled()
// 返回布尔值,检查组件是否被启用

setVisible(boolean)
// 是否显示组件

getSize()
// 返回一个Dimension对象,该对象的实例变量height和width描述组件的大小

9.2.1 图标

Swing支持在按钮和其他提供标签的组件上使用对象ImageIcon。要创建ImageIcon对象,可调用其构造函数,并将图形文件名作为参数传递给它。

ImageIcon subscribe = new ImageIcon("subscribe.gif");

java day9_第2张图片

9.2.2 标签

标签是一个包含说明性文本、图标或两者都有的用户组件

JLabel label=new JLabel("URL: ",SwingConstants.CENTER);
// SwingConstants接口有三个静态类变量用于指定对齐方式
- LEFT
- CENTER
- RIGHT

setText(String)
// 设置标签文本

setIcon(Icon)
// 设置标签图标

getText()getIcon()
// 获取文本和图标

9.2.3 文本框

文本框是界面上的一篇区域,用户可以通过键盘输入、修改其中的内容

JTextField rssUrl = new JTextField(60);
JTextField rssUrl2 = new JTextField("Enter feed URL here",60);

setEditable(boolean)
// 指定文本组件可编辑或不可编辑

isEditable()
// 返回相应boolean值

setText(string)
// 将文本修改为指定的字符串

getText()
// 将当前文本作为字符串返回

getSelectedText()
// 返回被选中的文本

密码框(password field)也是一个文本框,它将用户输入的字符隐藏起来。密码框通常由类JPasswordField表示,这是JTextField的一个子类。

JPasswordField codePhrase = new JPasswordField(20);
codePhrase.setEchoChar("#");

9.2.4 文本区域

文本区域(text area)是能够处理多行输入的可编辑文本框,由类JTextArea实现。

JTextArea(int,int)
JTextArea(String,int,int)
// 行数和列数为指定值,且包含指定文本的文本区域

getText()
getSelectedText()
setText(String)

append(String)
// 将指定的文本加入到当前文本的末尾

insert(String,int)
// 将指定的文本插入到指定的位置

setLineWrap(boolean)
// 指定文本在达到组件边界时是否自动换行

setWrapStyleWord(boolean)
// 指定如何换行:是将当前单词(参数为true时)还是将当前字符(参数为false时)
// 换到下一行

9.2.5 可滚动窗格

Swing来通过一种新的容器JScrollPane来支持滚动条,它可以用来放置任何可滚动的组件。

JScrollPane(component) 
// 包含指定组件的可滚动窗格
JScrollPane(component,int,int)
// 包含指定的组件,并带垂直滚动条和水平滚动条的可滚动窗格

9.2.6 复选框和单选按钮

复选框(JCheckBox类)是带标签或不带标签的框,选中时框中有一个复选标记,否则为空。单选按钮(JRadioButton)是一个圆圈,选中时有一个圆点,否则为空。

JCheckBox和JRadioButton类从其超类JToggleButton中继承一些很有用的方法

  • setSelected(boolean):如果参数为true则选中组件,否则不选中
  • isSelected():返回一个布尔值,指出组件是否被选中

要将多个单选按钮组织成一组,只允许每次选中其中一个,可以创建一个ButtonGroup对象

ButtonGroup choice = new ButtonGroup();

对象ButtonGroup跟踪所有单选按钮,可以调用方法add(Component)将指定的组件加入到组中

9.2.7 组合框

Swing类JComboBox可用于创建组合框:提供一个下拉式菜单,用户可以从中选择一项。当组合框未被使用时,菜单被隐藏,这样它在GUI中占用的空间更小。

String[] formats = {"Atom","RSS 0.92","RSS 1.0","RSS 2.0"};
JComboBox formatBox = new JComboBox(formats);

常用方法:

getItemAt(int)
// 返回位于整数参数指定的索引位置的选项文本
getItemCount()
// 返回列表中的选项数目
getSelectedIndex()
// 返回当前选项的索引
getSelectedItem()
// 返回当前选项的文本
setSelectedIndex(int)
// 选定索引指定的选项
setSelectedIndex(Object)
// 选中指定的对象

java day9_第3张图片

9.2.8 列表

列表是用类List表示的,它让用户能够从中选择一个或多个值

JList()
// 创建一个列表

setListData()
// 接受数组或矢量填充空列表

setVisibleRowCount(int)
// 并将要显示的项数作为参数

getSelectedValuesList(int)
// 返回对象列表,其中包含列表中所有被选中的项,可转换为ArrayList

String[] formats = {"Atom","RSS 0.92","RSS 1.0","RSS 2.0"};
JComboBox formatBox = new JComboBox(formats);

你可能感兴趣的:(java学习,java)