### 知识点详解 #### 一、Java GUI编程基础 **GUI(Graphical User Interface)**即图形用户界面,是计算机系统与用户之间的一种视觉交互方式。在Java中,Swing是创建GUI应用程序的主要工具包之一。Swing提供了一组用于构建应用程序的组件,并且这些组件具有可移植性。 #### 二、Swing组件简介 - **JFrame**:Swing中的顶级容器,是构成图形用户界面的基本单元。 - **JPanel**:容器组件,用于放置其他组件或容器。 - **JLabel**:用于显示文本或图像。 - **JTextField**:文本框组件,允许用户输入单行文本。 - **JPasswordField**:密码框组件,显示为掩码字符。 - **JButton**:按钮组件。 - **JDialog**:对话框,用于显示模态或非模态对话框。 #### 三、布局管理器 Swing提供了多种布局管理器来控制组件的排列方式: - **FlowLayout**:简单布局管理器,将组件放在容器内时,按添加顺序从左到右、从上到下排列。 - **GridLayout**:网格布局管理器,将容器分为均匀大小的矩形网格,每个网格中只能有一个组件。 - **BorderLayout**:边界布局管理器,将容器划分为东、南、西、北四个区域以及中间区域。 - **GridBagLayout**:灵活布局管理器,可以对组件进行更复杂的定位。 #### 四、事件处理 - **ActionListener**:接口,用于监听动作事件,如按钮点击等。 - **ActionEvent**:表示由组件触发的动作事件,通常由按钮等组件触发。 #### 五、具体代码分析 ##### 1. Select 类 这是一个简单的公共类,其主要功能是启动 `MyFrame` 类的实例。 ```java public class Select { public static void main(String[] args) { new MyFrame(); } } ``` ##### 2. MyFrame 类 - **构造方法**:设置了窗口的标题、布局,并创建了三个面板(pane1、pane2 和 pane3),分别用于输入用户名、密码和放置登录按钮。 - **组件设置**:使用了 `JTextField` 和 `JPasswordField` 来接收用户的输入,并通过 `JButton` 触发登录操作。 - **布局设置**:使用了 `GridLayout` 和 `FlowLayout` 来管理组件的排列方式。 - **事件监听**:实现了 `ActionListener` 接口,当用户点击登录按钮时,会检查输入的用户名和密码是否正确,如果正确则打开新的窗口 `MeFrame`,否则显示错误提示对话框 `MyJDialog`。 ```java class MyFrame extends JFrame implements ActionListener { // 构造方法 public MyFrame() { // 设置标题、布局并创建组件 ... // 添加事件监听 button.addActionListener(this); } // 事件处理方法 public void actionPerformed(ActionEvent e) { if (e.getSource() == button) { String str = textField1.getText(); String str0 = textField2.getText(); if ("Administrator".equals(str) && "12345".equals(str0)) new MeFrame(); else new MyJDialog(); } } } ``` ##### 3. MyJDialog 类 - **构造方法**:创建一个带有错误提示信息和关闭按钮的对话框。 - **布局设置**:使用 `GridLayout` 布局管理器来排列组件。 ```java class MyJDialog extends JDialog { public MyJDialog() { // 创建带有错误提示信息和关闭按钮的对话框 ... } } ``` ##### 4. MeFrame 类 - **构造方法**:创建一个新的窗口。 - **布局设置**:没有具体设置,可以添加更多的组件或布局管理器。 ```java class MeFrame extends JFrame { public MeFrame() { setTitle("选 择"); // 设置标题 setVisible(true); // 显示窗口 setSize(300, 200); // 设置窗口大小 } } ``` #### 六、总结 本例通过简单的登录界面演示了如何使用Swing创建基本的GUI应用程序。涉及到了组件的使用、布局管理器的选择以及事件处理机制。这种简单的登录界面可以作为初学者学习Swing的基础案例。在未来的学习过程中,可以通过增加更多的功能来进一步提高应用程序的复杂度和实用性。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Select {
public static void main(String args[]){
new MyFrame();
}
}
class MyFrame extends JFrame implements ActionListener{
final String Administrator="赵永焕";
final String password="12345";
JTextField textField1,textField2;
JButton button;
public MyFrame(){
setTitle("登陆界面");
setLayout(new GridLayout(3,1));
JPanel pane1=new JPanel(new GridLayout(1,1));
JPanel pane2=new JPanel(new GridLayout(1,1));
JPanel pane3=new JPanel(new GridLayout(1,1));
Label label1=new Label("用户名");
textField1=new JTextField(10);
Label label2=new Label("密码");
JPasswordField textField2=new JPasswordField(10);
textField2.setEchoChar('*');
getContentPane().add(pane1);
getContentPane().add(pane2);
getContentPane().add(pane3);
- 粉丝: 605
- 资源: 34
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Qt框架的图形界面管理系统DeepinGraphics.zip
- mmexport1f86dd24828d1f641efb691d208468d9_1731805247221.png
- (源码)基于Arduino和MQTT协议的无线开关控制系统.zip
- mmexportf40413a965bda00645a925f2719aef69_1731805204282.jpeg
- (源码)基于SSM框架的教务查询系统.zip
- Python的正则表达式PDF
- (源码)基于Java的在线图书商城系统.zip
- renren_2024-11-01_19.apk
- 毕业设计管理系统SSMLayui框架-毕业设计.zip
- (源码)基于Asp.netMVC框架的简易选课系统.zip