第9章 GUI - 补充案例(6)

2019-08-30 19:22

博学谷——让IT教学更简单,让IT学习更有效

三、案例总结

在本案例中,通过JFrame类创建了一个窗体,并向该窗体中添加了一个按钮。JFrame类和Frame类最大的区别在于,JFrame类提供了关闭窗口的功能,在程序中不需要添加窗体监听器,只需调用setDefaultCloseOperation()方法,然后将常量JFrame.EIXT_ON_CLOSE作为参数传入即可,该参数表示点击窗口关闭按钮时退出程序。

案例9-14 JScrollPane 一、案例描述

1、 考核知识点

编号:00109018 名称:JScrollPane

2、 练习目标

? 掌握JScrollPane中间容器的使用

3、 需求分析

JScrollPane是一个带有滚动条的面板容器,而且这个面板只能添加一个组件,如果想往JScrollPane面板中添加多个组件,应该先将组件添加到JPanel中,然后将JPanel添加到JScrollPane中。为了让初学者掌握JScrollPane面板容器的使用,本案例将演示一下向中间容器添加按钮。

4、 设计思路(实现原理)

1)编写Example14类,创建滚动面板。 2)设置垂直滚动条。

3)定义一个JPanel面板,设置JPanel面板在滚动面板中显示。 4)将滚动面板添加到内容面板的CENTER区域

二、案例实现

编写Example14类,代码如下所示:

import java.awt.*; import javax.swing.*;

public class Example14 extends JFrame {

public Example14() {

this.setTitle(\滚动面板\// 创建滚动面板

JScrollPane scrollPane = new JScrollPane(); // 设置水平滚动条策略--滚动条一直显示

scrollPane.setHorizontalScrollBarPolicy

(ScrollPaneConstants. HORIZONTAL_SCROLLBAR_AS_NEEDED); // 设置垂直滚动条策略--滚动条需要时显示 scrollPane.setVerticalScrollBarPolicy

26

博学谷——让IT教学更简单,让IT学习更有效

}

}

public static void main(String[] args) { }

new Example14 ();

(ScrollPaneConstants. VERTICAL_SCROLLBAR_ALWAYS); // 定义一个JPanel面板

JPanel panel = new JPanel(); // 设置JPanel面板在滚动面板中显示 scrollPane.setViewportView(panel); // 将滚动面板添加到内容面板的CENTER区域

this.add(scrollPane, BorderLayout.CENTER);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(400, 250); this.setVisible(true);

运行结果如图9-18所示:

图9-18 运行结果

三、案例总结

1、Swing组件中不仅具有JFrame和JDialog这样的顶级窗口,还提供了一些中间容器,这些容器不能单独存在,只能放置在顶级窗口中。其中最常见的中间容器有两种:JPanel和JScrollPane。

2、JScrollPane的常用构造方法,如下表所示。 方法声明 JScrollPane() JScrollPane(Component view) 功能描述 创建一个空的JScrollPane面板 创建一个显示指定组件的JScrollPane面板,只要组件的内容超过视图大小就会显示水平和垂直滚动条 创建一个显示指定容器、并具有指定滚动条策略的JScrollPane。参数vsbPolicy和hsbPolicy分别表示垂直滚动条策略和水平滚动条策略,应指定为ScrollPaneConstants的静态常量,如下所示: ? HORIZONTAL_SCROLLBAR_AS_NEEDED:表示水平滚动条只在需要时显示,是默认策略。 ? HORIZONTAL_SCROLLBAR_NEVER:表示水平滚动条永远不显示 27

JScrollPane(Component view, int vsbPolicy,int hsbPolicy) 博学谷——让IT教学更简单,让IT学习更有效

? HORIZONTAL_SCROLLBAR_ALWAYS:表示水平滚动条一直显示 3、如果在构造方法中没用指定显示组件和滚动条策略,也可以使用JScrollPane提供的方法进行设置,如下表所示。

方法声明 void setVerticalBarPolicy(int policy) void setViewportView( Component view) 功能描述 指定垂直滚动条策略,即垂直滚动条何时显示在滚动面板上 设置在滚动面板显示的组件 void setHorizontalBarPolicy(int policy) 指定水平滚动条策略,即水平滚动条何时显示在滚动面板上 案例9-15 JTextComponent 一、案例描述

1、 考核知识点

编号:00109019

名称:JTextComponent

2、 练习目标

? 掌握文本组件JTextComponent的使用

3、 需求分析

文本组件JTextComponent用于接收用户输入的信息或向用户展示信息。为了让初学者掌握文本组件的使用,本案例将演示一下文本组件JTextField和JTextArea组件的使用。

4、 设计思路(实现原理)

1)编写Example15类,创建一个文本域。

2)创建一个滚动面板,将文本域作为其显示组件。

3)创建一个JPanel面板、一个文本框和一个发送按钮,模拟发送短信的界面。

4)为按钮添加一个监听事件,获取输入的文本信息,如果为空则提示“短信内容不能为空”,如果不为空则打印出短信内容。

二、案例实现

import java.awt.*; import java.awt.event.*; import javax.swing.*;

public class Example15 extends JFrame {

JButton sendBt;

JTextField inputField; JTextArea chatContent; public Example15() {

this.setLayout(new BorderLayout());

chatContent = new JTextArea(12, 34); // 创建一个文本域 // 创建一个滚动面板,将文本域作为其显示组件

28

博学谷——让IT教学更简单,让IT学习更有效

JScrollPane showPanel = new JScrollPane(chatContent); chatContent.setEditable(false); // 设置文本域不可编辑 JPanel inputPanel = new JPanel(); // 创建一个JPanel面板 inputField = new JTextField(20); // 创建一个文本框 sendBt = new JButton(\发送\创建一个发送按钮 // 为按钮添加事件

sendBt.addActionListener(new ActionListener() { // 为按钮添加一个监听事件

public void actionPerformed(ActionEvent e) {// 重写actionPerformed方法

String content = inputField.getText(); // 获取输入的文本信息 if (content != null && !content.trim().equals(\

chatContent.append(content + \

// 判断输入的信息是否为空

// 如果不为空,将输入的文本追加到到聊天窗口

} else {

// 如果为空,提示短信内容不能为空 }

}

public static void main(String[] args) { }

new Example15 ();

}

}

inputField.setText(\将输入的文本域内容置为空

chatContent.append(\短信内容不能为空\

});

Label label = new Label(\短信编辑\创建一个标签

inputPanel.add(label); // 将标签添加到JPanel面板 inputPanel.add(inputField); // 将文本框添加到JPanel面板 inputPanel.add(sendBt); // 将按钮添加到JPanel面板 // 将滚动面板和JPanel面板添加到JFrame窗口 this.add(showPanel, BorderLayout.CENTER); this.add(inputPanel, BorderLayout.SOUTH); this.setTitle(\发送短信窗口\this.setSize(400, 300);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true);

运行结果如图9-19所示:

29

博学谷——让IT教学更简单,让IT学习更有效

图9-19 运行结果

三、案例总结

1、文本组件包括文本框(JTextField)、文本域(JTextArea)等,它们都有一个共同父类JTextComponent。 2、JTextField:JTextField称为文本框,它只能接收单行文本的输入,接下来介绍一下JTextField常用的构造方法,如下表所示。

方法描述 JTextField() JTextFiled(int columns) JTextField(String text) JTextField(String text,int column) 功能说明 创建一个空的文本框,初始字符串为null 创建一个具有指定列数的文本框,初始字符串为null 创建一个显示指定初始字符串的文本框 创建一个具有指定列数、并显示指定初始字符串的文本框 3、JTextArea:JTextArea称为文本域,它能接收多行的文本的输入,使用JTextArea构造方法创建对象时可以设定区域的行数、列数,接下来介绍一下JTextArea常用的构造方法,如表9-11所示。

表9-1 JTextArea构造方法

方法描述 JTextArea() JTextArea(String text) JTextArea(int rows,int columns) JTextArea(String text,int rows,int columns) 功能说明 构造方法,创建一个空的文本域 构造方法,创建显示指定初始字符串的文本域 构造方法,创建具有指定行和列的空的文本域 构造方法,创建显示指定初始文本并指定了行列的文本域 案例9-16 JCheckBox组件 一、案例描述

1、 考核知识点

编号:00109020

名称:JCheckBox组件

2、 练习目标

? 掌握JCheckBox组件的使用

3、 需求分析

30


第9章 GUI - 补充案例(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017-2018学年甘肃省平凉市静宁一中高二(上)期中数学试卷(文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: