Java Swing图形用户界面教程:从简单窗口到按钮应用
需积分: 19 124 浏览量
更新于2024-07-27
收藏 406KB DOC 举报
"该资源提供了一系列关于图形用户界面(GUI)编程的基础示例,主要使用Java的Swing库。这些示例涵盖了创建基本窗口、对话框以及添加按钮和文本输入组件到界面中的方法,对于初学者理解GUI编程非常有帮助。"
在图形用户界面(GUI)开发中,Java的Swing库提供了丰富的组件和工具来创建交互式的应用程序界面。以下是一些基本的GUI编程概念和示例解释:
1. **创建窗口**:在例1中,我们看到了如何创建一个基本的JFrame窗口。`JFrame`是Java Swing中用于创建窗口的主要类。通过创建`JFrame`对象并设置其大小和可见性,我们可以创建一个带有指定标题的窗口。例如:
```java
JFrame f = new JFrame("hello");
f.setSize(200, 200);
f.setVisible(true);
```
这将创建一个200x200像素的窗口,标题为"hello"。
2. **添加对话框**:例2展示了如何在已存在的窗口中创建一个模态JDialog。`JDialog`是与`JFrame`类似但可以作为对话框出现的组件,常用于提示信息或用户输入。`true`参数表示它是模态对话框,意味着用户必须关闭对话框才能继续与主窗口交互。
```java
JDialog d = new JDialog(f, "mydialog", true);
```
3. **添加按钮**:在例3中,我们看到如何在窗口中添加按钮。`JButton`类用于创建按钮,可以添加事件监听器以响应用户的点击操作。`JPanel`是一个容器,用于组合多个组件。将按钮添加到面板上,再将面板添加到窗口中。
```java
JButton b1 = new JButton("test1");
JButton b2 = new JButton("test2");
JPanel p = new JPanel();
p.add(b1);
p.add(b2);
JFrame jf = new JFrame("test");
jf.add(p);
jf.pack();
jf.setVisible(true);
```
`pack()`方法确保窗口根据其内容自动调整大小。
4. **文本输入组件**:例4展示了`JTextField`的用法,它用于接收用户输入的文本。`JTextField`限制了可输入字符的最大数量。
```java
JTextField nameField1 = new JTextField("请输入用户名,用户名不超过25", 25);
```
这里的25是字段的最大字符数。
这些基本示例为初学者提供了构建GUI界面的基础,包括窗口、对话框、按钮和文本输入组件的创建。随着学习的深入,开发者还可以了解更多的组件(如`JLabel`,`JTextArea`,`JComboBox`等)、布局管理器、事件处理和定制组件,以创建更复杂、功能丰富的用户界面。
2625 浏览量
262 浏览量
142 浏览量
648 浏览量
151 浏览量
2021-03-04 上传
guohuihui5566
- 粉丝: 0
- 资源: 8
最新资源
- chat-app-master
- MAST-MOBILE:MAST Android应用程序源代码-Android application source code
- nanodegree-p3-classic-arcade-game:nanodegree-p3-classic-arcade-game
- Just_Java-app:这是我的第一拳Android项目,通过该项目,我通过Just Java应用程序了解了android的各种基础知识
- SIXSIGMA六标准差——教练级黑带师、黑带、绿带培训方案
- 数据营项目
- tool-conventions:支持使用WebAssembly的工具之间的互操作性的约定
- learn-bootstrap:这个 repo 是为我创建的,用于通过 tutorialls 学习引导程序
- FitJournal:Fit Journal应用程序的源代码-Android application source code
- 计时器
- 金融筹资管理
- thunderboard-android:这是Android的Thunderboard应用程序的源代码-Android application source code
- 网址缩短API登陆页面
- silverstripe-email_reminder:Silverstripe CMS的模块。 在用户的成员资格(或类似权限)即将到期时向用户发送提醒
- nodeschool.io:我对 NodeSchool.io 练习的解决方案
- ASCII-ART:产生与图像相对应的ASCII符号