与Swing的初见
---------------------------参考菜鸟教程的swing课程学习--------------------
Swing 是一个为Java设计的GUI工具包。
Swing是JAVA基础类的一部分。
Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。
Hello World程序
HelloWorldSwing.java代码 // 初步搭建GUI界面 ,内容较空
1 import javax.swing.*; 2 3 import org.omg.CORBA.PUBLIC_MEMBER; 4 public class HelloWorldSwing { 5 /* 6 * 创建并显示GUI (图形用户界面) 7 * 出于线程安全的考虑 8 * 这个方法在事件调用线程中调用 9 * */ 10 private static void creatAndShowGUI() { 11 //确保一个漂亮的外观风格 12 JFrame.setDefaultLookAndFeelDecorated(true); 13 14 //创建以及设置窗口 15 JFrame frame = new JFrame("HelloWorldSwing"); 16 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 17 18 //添加“HelloWorld” 标签 19 JLabel label = new JLabel("Hello World"); 20 frame.getContentPane().add(label); 21 22 //显示窗口 23 frame.pack(); 24 frame.setVisible(true); 25 } 26 27 public static void main(String[] args) { 28 //显示应用 GUI 29 javax.swing.SwingUtilities.invokeLater(new Runnable(){ 30 public void run() { 31 creatAndShowGUI(); 32 } 33 }); 34 } 35 36 }
// 不可移动 ,最小或最大
一个用户登录框实例
SwingLoginExample.java文件代码如下:
1 import javax.swing.JButton; 2 import javax.swing.JFrame; 3 import javax.swing.JLabel; 4 import javax.swing.JPanel; 5 import javax.swing.JPasswordField; 6 import javax.swing.JTextField; 7 /* 8 * 用户登录实例 9 */ 10 public class SwingLoginExample { 11 12 public static void main(String[] args) { 13 //创建JFrame 实例 14 JFrame frame = new JFrame("Login Example"); //注意双引 15 //Setting the width and height of frame(框架) 16 frame.setSize(350,200); 17 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 18 19 /*创建面板,这个类似于HTML的 div 标签 20 * 我们可以创建多个面板并在JFrame中指定位置 21 * 面板中我们可以添加文办字段,按钮及其它组件 22 */ 23 JPanel panel = new JPanel();//panel:面板 24 //添加面板 25 frame.add(panel); 26 /* 27 * 调用用户定义的方法并添加组件到面板 28 */ 29 placeComponents(panel); 30 31 //设置界面可见 32 frame.setVisible(true); 33 } 34 35 private static void placeComponents(JPanel panel) { 36 /* 37 *布局部分 38 *设置布局为null 39 */ 40 panel.setLayout(null); 41 42 //创建JLabel 43 JLabel userLabel = new JLabel("User:"); 44 /* 45 * 这个方法定义组件的位置 46 * setBounds(x,y,,width,height) 47 * x,y指左上角的新位置,由width和height指定心得大小 48 */ 49 userLabel.setBounds(10, 20, 85, 25); 50 panel.add(userLabel); 51 /* 52 * 创建文本域用于用户输入 53 */ 54 JTextField userText = new JTextField(20); 55 userText.setBounds(100,20,165,25); 56 panel.add(userText); 57 58 //输入密码的文本域 59 JLabel passwordLabel = new JLabel("Password:"); 60 passwordLabel.setBounds(10, 50, 80, 25); 61 panel.add(passwordLabel); 62 63 /*类似输入的文本域 64 * 但输入的信息会以点号代替,用于保护密码的安全性 65 */ 66 JPasswordField passwordText = new JPasswordField(20); 67 passwordText.setBounds(100,50,80,25); 68 panel.add(passwordText); 69 70 //创建登录按钮 71 JButton loginButton = new JButton("login"); 72 loginButton.setBounds(10, 80, 80, 25); 73 panel.add(loginButton); 74 } 75 76 }
//增加User和password按键,界面可移动,大小可控
JFrame - java 的GUI程序的基本思路是一JFrame为基础,它是屏幕上的Windows对象,可以最大化、最小化、关闭。
JPanel - java 图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing包中,可以进行嵌套,功能是对窗体中具有相同逻辑功能的组件进行组合,始终轻量级容器,可以加入到JFrame窗体中。
JLabel - JLabel对象可以显示文本、图像或同时两者。可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,标签在其显示区内垂直居中对齐。默认情况下,只显示文本的标签是开始边对齐;而只显示图像标签则是水平居中对齐。
JTextField - 一个轻量级组件,它允许编辑单行文本。
JPasswordField - 允许我们输入一行字像输入框,但隐藏星号(*)或创建密码(密码)。
JButton - JButton类的实例。用于创建按钮类似实例的“login”。