Java Swing组件详解:从AWT到Swing的转变
需积分: 9 195 浏览量
更新于2024-09-12
收藏 73KB DOC 举报
"Java Swing是Java GUI编程的一个重要组成部分,主要包含了九种常用的组件,用于构建用户界面。这些组件在Java 1.0的AWT(Abstract Window Toolkit)基础上进行了改进,提供了更好的跨平台兼容性和丰富的功能。Swing组件不依赖本地代码,使得在不同操作系统上实现一致的用户体验成为可能。此外,Swing也是Java Foundation Classes (JFC)的一部分,JFC是一组用于构建图形用户界面的API,包括Java 2D和Drag and Drop等特性。
在Java Swing中,标签(JLabel)是一个常用组件,它通常用于标注其他组件或显示文本、图像或它们的组合。例如,创建一个显示"文本标签"的JLabel可以通过以下代码实现:
```java
JLabel labText = new JLabel("文本标签");
labText.setText("文本标签");
```
另外,如果要显示图像,可以创建一个带有ImageIcon的JLabel:
```java
ImageIcon icon = new ImageIcon("image/greenflag20.gif");
JLabel labImage = new JLabel(icon);
labImage.setIcon(icon);
```
除了JLabel之外,Java Swing还包含其他关键组件,比如按钮(JButton)、文本框(JTextField)、文本域(JTextArea)、滚动面板(JScrollPane)、菜单(JMenu)、菜单项(JMenuItem)、对话框(JOptionPane)、列表(JList)和表格(JTable)等。每个组件都有其特定的用途和方法,以满足各种GUI设计需求。
按钮(JButton)是用户交互的重要元素,可以响应用户的点击操作。例如:
```java
JButton button = new JButton("点击我");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("按钮被点击了");
}
});
```
文本框(JTextField)允许用户输入单行文本,而文本域(JTextArea)则支持多行文本输入:
```java
JTextField textField = new JTextField("单行文本");
JTextArea textArea = new JTextArea("多行文本");
```
滚动面板(JScrollPane)用于包含那些可能超出视口大小的组件,例如长列表或大表格:
```java
JScrollPane scrollPane = new JScrollPane(listOrTable);
```
菜单(JMenu)和菜单项(JMenuItem)构成下拉菜单系统:
```java
JMenu menu = new JMenu("文件");
JMenuItem item = new JMenuItem("打开");
menu.add(item);
```
对话框(JOptionPane)则用于展示信息、询问用户或接收用户输入:
```java
int result = JOptionPane.showConfirmDialog(null, "确定要退出吗?", "确认", JOptionPane.YES_NO_OPTION);
```
列表(JList)和表格(JTable)用于显示和操作数据集合:
```java
JList<String> list = new JList<>(new String[]{"项1", "项2", "项3"});
JTable table = new JTable(new Object[][]{{"行1列1", "行1列2"}, {"行2列1", "行2列2"}}, new String[]{"列1", "列2"});
```
Java Swing提供了一整套丰富的组件和API,使得开发者能够创建功能强大、用户体验良好的跨平台GUI应用。尽管AWT组件仍然可用,但推荐使用Swing组件及其1.1的事件模型,因为它们具有更优的性能和更多的功能特性。"
3219 浏览量
1351 浏览量
278 浏览量
126 浏览量
117 浏览量
1070 浏览量
445 浏览量
1086 浏览量
310 浏览量
zhangyunwei10
- 粉丝: 0
- 资源: 12
最新资源
- kubernetes-kms:for适用于Kubernetes的Azure Key Vault KMS插件
- Data_Explore_py_pandas_Professional_nanodegree_program:具有一些基本描述性统计信息的用户交互式数据探索程序
- IntelligentAgentsAssignment:第一次尝试在非常简单的环境中实现信念-愿望-意图模型
- flash元件批量改名命令(jsfl)
- fullstackopen:赫尔辛基大学
- Calendar2.rar
- vscode-mono-debug:一个简单的VS Code调试适配器,用于单声道
- packtools:用于处理SciELO PS XML文件的Python库和命令行实用程序
- 使用 MATLAB 进行信用风险建模:这些是 MathWorks 网络研讨会的同名 MATLAB 支持文件。-matlab开发
- 采购管理工程招投标流程
- CBB-Stats
- 12.XGBoost_data.rar
- 电子功用-基于电压跟踪的锂电池剩余电量的计量方法
- 皇家型
- android:android相关代码和示例
- 采购与仓储管理