來源程式: 1 import java.awt.EventQueue; 2 import javax.swing.JFrame; 3 import java.awt.Color; 4 import javax.swing.JPanel; 5 import java.awt.BorderLayout; 6 import javax.swing.JLabel; 7 import javax.swing.JTextField; 8 import javax.swing.JPasswordField; 9 import javax.swing.JButton; 10 import javax.swing.event.*; 11 import java.awt.Font; 12 public class LoginWindow { 13 14 private JFrame frame; 15 private JPasswordField passwordField; 16 17 /** 18 * Launch the application. 19 */ 20 public static void main(String[] args) { 21 EventQueue.invokeLater(new Runnable() { 22 public void run() { 23 try { 24 LoginWindow window = new LoginWindow(); 25 window.frame.setVisible(true); 26 } catch (Exception e) { 27 e.printStackTrace(); 28 } 29 } 30 }); 31 } 32 33 /** 34 * Create the application. 35 */ 36 public LoginWindow() { 37 initialize(); 38 } 39 40 /** 41 * Initialize the contents of the frame. 42 */ 43 private void initialize() { 44 frame = new JFrame(); 45 frame.setBackground(Color.BLUE); 46 frame.setBounds(100, 100, 445, 319); 47 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 48 49 JPanel panel = new JPanel(); 50 frame.getContentPane().add(panel, BorderLayout.CENTER); 51 panel.setVisible(true); 52 panel.setLayout(null); 53 54 JLabel label = new JLabel("\u767B\u5F55\u540D\uFF1A"); 55 label.setFont(new Font("微軟雅黑", Font.PLAIN, 18)); 56 label.setBounds(85, 44, 76, 32); 57 panel.add(label); 58 59 JLabel label_1 = new JLabel("\u5BC6\u7801\uFF1A"); 60 label_1.setFont(new Font("微軟雅黑", Font.PLAIN, 18)); 61 label_1.setBounds(85, 86, 76, 32); 62 panel.add(label_1); 63 64 JLabel label_2 = new JLabel("\u9A8C\u8BC1\u7801\uFF1A"); 65 label_2.setFont(new Font("微軟雅黑", Font.PLAIN, 18)); 66 label_2.setBounds(84, 128, 76, 30); 67 panel.add(label_2); 68 69 JTextField textArea = new JTextField(); 70 textArea.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255,0,0))); 71 textArea.setBounds(181, 44, 166, 34); 72 panel.add(textArea); 73 74 passwordField = new JPasswordField(); 75 passwordField.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255,0,0))); 76 passwordField.setBounds(181, 86, 166, 34); 77 panel.add(passwordField); 78 79 JButton btnNewButton = new JButton("\u767B\u5F55"); 80 btnNewButton.setEnabled(false); 81 btnNewButton.setBackground(new Color(51, 153, 0)); 82 btnNewButton.setForeground(Color.BLACK); 83 btnNewButton.setBounds(124, 186, 181, 29); 84 panel.add(btnNewButton); 85 86 JButton btnNewButton_1 = new JButton("\u5FEB\u901F\u6CE8\u518C"); 87 btnNewButton_1.setBackground(new Color(255, 204, 255)); 88 btnNewButton_1.setBounds(124, 225, 181, 29); 89 panel.add(btnNewButton_1); 90 91 92 String result = ""; 93 for(int i = 0;i < 6;i++) 94 { 95 int c = (int)(Math.random() * 26 + 97); 96 result = result + (char)c; 97 } 98 JLabel lblValid = new JLabel(result); 99 lblValid.setBounds(277, 134, 70, 22);100 panel.add(lblValid);101 102 JTextField textArea_1 = new JTextField();103 textArea_1.getDocument().addDocumentListener(new DocumentListener(){104 public void insertUpdate(DocumentEvent e) {105 if(textArea_1.getText().equals(lblValid.getText())){106 btnNewButton.setEnabled(true);107 }108 else{109 btnNewButton.setEnabled(false);110 }111 }112 public void removeUpdate(DocumentEvent e) {113 if(textArea_1.getText().equals(lblValid.getText())){114 btnNewButton.setEnabled(true);115 }116 else{117 btnNewButton.setEnabled(false);118 }119 }120 public void changedUpdate(DocumentEvent e) {121 122 }123 });124 125 textArea_1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255,0,0)));126 textArea_1.setBounds(180, 128, 76, 32);127 panel.add(textArea_1);128 }129 }