Java Swing 简单介绍

Swing 是一个为Java设计的GUI工具包。java

Swing是JAVA基础类的一部分。安全

Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。工具

Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,因此同Java自己同样能够跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各类操做系统默认的特有主题),然而不是真的使用原平生台提供的设备,而是仅仅在表面上模仿它们。这意味着你能够在任意平台上使用JAVA支持的任意面板。轻量级组件的缺点则是执行速度较慢,优势就是能够在全部平台上采用统一的行为。布局


Hello World 程序

HelloWorldSwing.java 文件代码以下:spa

import javax.swing.*; public class HelloWorldSwing { /**{ * 建立并显示GUI。出于线程安全的考虑, * 这个方法在事件调用线程中调用。 */ private static void createAndShowGUI() { // 确保一个漂亮的外观风格 JFrame.setDefaultLookAndFeelDecorated(true); // 建立及设置窗口 JFrame frame = new JFrame("HelloWorldSwing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 添加 "Hello World" 标签 JLabel label = new JLabel("Hello World"); frame.getContentPane().add(label); // 显示窗口 frame.pack(); frame.setVisible(true); } public static void main(String[] args) { // 显示应用 GUI javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } }

执行如下命令输出结果:操作系统

$ javac HelloWorldSwing.java $ java HelloWorldSwing

一个用户登陆框实例

SwingLoginExample.java 文件代码以下:线程

import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class SwingLoginExample { public static void main(String[] args) { // 建立 JFrame 实例 JFrame frame = new JFrame("Login Example"); // Setting the width and height of frame frame.setSize(350, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /* 建立面板,这个相似于 HTML 的 div 标签 * 咱们能够建立多个面板并在 JFrame 中指定位置 * 面板中咱们能够添加文本字段,按钮及其余组件。 */ JPanel panel = new JPanel(); // 添加面板 frame.add(panel); /* * 调用用户定义的方法并添加组件到面板 */ placeComponents(panel); // 设置界面可见 frame.setVisible(true); } private static void placeComponents(JPanel panel) { /* 布局部分咱们这边很少作介绍 * 这边设置布局为 null */ panel.setLayout(null); // 建立 JLabel JLabel userLabel = new JLabel("User:"); /* 这个方法定义了组件的位置。 * setBounds(x, y, width, height) * x 和 y 指定左上角的新位置,由 width 和 height 指定新的大小。 */ userLabel.setBounds(10,20,80,25); panel.add(userLabel); /* * 建立文本域用于用户输入 */ JTextField userText = new JTextField(20); userText.setBounds(100,20,165,25); panel.add(userText); // 输入密码的文本域 JLabel passwordLabel = new JLabel("Password:"); passwordLabel.setBounds(10,50,80,25); panel.add(passwordLabel); /* *这个相似用于输入的文本域 * 可是输入的信息会以点号代替,用于包含密码的安全性 */ JPasswordField passwordText = new JPasswordField(20); passwordText.setBounds(100,50,165,25); panel.add(passwordText); // 建立登陆按钮 JButton loginButton = new JButton("login"); loginButton.setBounds(10, 80, 80, 25); panel.add(loginButton); } }

执行如下命令输出结果:设计

$ javac SwingLoginExample.java $ java SwingLoginExample

概念解析:

JFrame – java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,可以最大化、最小化、关闭。

JPanel
 – Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing 包中,能够进行嵌套,功能是对窗体中具备相同逻辑功能的组件进行组合,是一种轻量级容器,能够加入到JFrame窗体中。。对象

JLabel – JLabel 对象能够显示文本、图像或同时显示两者。能够经过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认状况下,标签在其显示区内垂直居中对齐。默认状况下,只显示文本的标签是开始边对齐;而只显示图像的标签则水平居中对齐。事件

JTextField –一个轻量级组件,它容许编辑单行文本。

JPasswordField – 容许咱们输入了一行字像输入框,但隐藏星号(*) 或点建立密码(密码)

JButton – JButton 类的实例。用于建立按钮相似实例中的 "Login"。

相关文章
相关标签/搜索