21xrx.com
2024-12-22 21:06:02 Sunday
登录
文章检索 我的文章 写文章
Java最强的UI:Swing实现教程
2023-06-15 19:54:49 深夜i     --     --
Java GUI Swing

Java作为一门跨平台的编程语言,有着非常广泛的应用领域。其中,图形用户界面(GUI)是Java应用开发中极为重要的一环。而Swing作为Java最常用的图形用户界面工具包,已经证明了自己在Java界面开发领域中的地位。

Swing 是 Java 类库的一个部分,是一套用于 GUI 程序设计的 API,由 Sun Microsystems 提供。Swing 可以让你更快地开发 GUI 应用程序和 applets。Swing 支持的一些特性包括完全的可定制性、多重组合框(combination box)、拖放支持、内置对话框、多重视图表(multi-levelled menus)、易于使用的 Swing 组件等。Swing 可以使用 Java Foundation Classes (JFC) 来完成。

下面是一个使用Swing实现简单登录界面的代码:


import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Login extends JFrame implements ActionListener {

  JLabel userLbl, passLbl;

  JTextField user;

  JPasswordField pass;

  JButton submit;

  Login() {

    userLbl = new JLabel("用户名:");

    passLbl = new JLabel("密码:");

    user = new JTextField("");

    pass = new JPasswordField("");

    submit = new JButton("登录");

    setLayout(new GridLayout(3,2));

    add(userLbl);

    add(user);

    add(passLbl);

    add(pass);

    add(new JLabel(""));

    add(submit);

    submit.addActionListener(this);

    setTitle("登录");

    setSize(300, 150);

    setVisible(true);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  }

  public void actionPerformed(ActionEvent e) {

    if (user.getText().equals("admin") && new String(pass.getPassword()).equals("123456")) {

      JOptionPane.showMessageDialog(null, "登录成功!");

      this.dispose();

      new MainFrame();

    } else {

      JOptionPane.showMessageDialog(null, "用户名或密码错误!");

    }

  }

  public static void main(String[] args) {

    new Login();

  }

}

class MainFrame extends JFrame {

  JLabel title;

  MainFrame() {

    title = new JLabel("欢迎使用本系统!");

    setLayout(new FlowLayout());

    add(title);

    setTitle("主窗口");

    setSize(250, 100);

    setVisible(true);

    setDefaultCloseOperation(EXIT_ON_CLOSE);

  }

}

通过上述代码,我们可以简单实现一个登录界面,并且绑定了一个登录按钮的响应事件。

Java中除了Swing,还有一些其他的UI工具包,例如JavaFX、AWT等,不同GUI工具包各有特色。但总的来说,Swing在Java GUI开发中技高一筹,完美地展现出了Java作为一门跨平台语言的特点,实现了一次编写,跨平台运行的目标。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复