โดยทั่วไปแล้วหน้าต่างเข้าสู่ระบบเป็นเรื่องธรรมดามากดังนั้นเรามาเขียนด้วยตัวเอง!
PS: การนำเข้าจำนวนมากซ้ำกันเพราะฉันเขียนในหลายหมวดหมู่และต้องนำเข้าแยกต่างหาก
// จำลองหน้าต่างการเข้าสู่ระบบ QQ นำเข้า java.awt.*; นำเข้า java.io.*; นำเข้า java.awt.event.*; นำเข้า Javax.swing.*; คลาสสาธารณะ qqgui ขยาย jframe ดำเนินการ actionlistener {ส่วนตัว jlabel userla; Jlabel ส่วนตัว Pwdla; Jlabel vercodela ส่วนตัว // รหัสการตรวจสอบส่วนตัว jtextfield ส่วนตัว usertxt; ส่วนตัว jpasswordfield pwdtxt; ส่วนตัว jtextfield vercodetxt; // รหัสการตรวจสอบส่วนตัว jbutton ส่วนตัว Surebt; JButton ส่วนตัว Quitbt; MyPanel MP ส่วนตัว; // วิธีการก่อสร้างสาธารณะ qqgui () {init (); } โมฆะสาธารณะ init () {frame frame = frame ใหม่ ("qq login"); // สร้างวัตถุควบคุม (เพราะข้างต้นเพิ่งประกาศและไม่ให้พื้นที่จริง) // ข้อความผู้ใช้ userla = new JLabel (); userla.settext ("ชื่อผู้ใช้:"); userla.setsize (60, 50); userla.setLocation (100, 80); // รหัสผ่านข้อความ pwdla = new jlabel (); pwdla.settext ("รหัสผ่าน:"); pwdla.setsize (50, 50); pwdla.setLocation (100, 120); // กล่องอินพุตผู้ใช้ usertxt = new jtextfield (); usertxt.setsize (100, 20); //this.setsize(width, ความสูง) usertxt.setLocation (170, 95); // กล่องป้อนรหัสผ่าน pwdtxt = new JPasswordField (); pwdtxt.setsize (100, 20); pwdtxt.setLocation (170, 135); // ยืนยันปุ่ม SUREBT = new JButton ("เข้าสู่ระบบ"); Surebt.setsize (60, 25); Surebt.setLocation (135, 260); // ปุ่มออก quitbt = new JButton ("ออก"); quitbt.setsize (60, 25); quitbt.setLocation (240, 260); // รหัสการตรวจสอบข้อความ vercodela = new jlabel (); vercodela.settext ("รหัสการตรวจสอบ:"); vercodela.setsize (60, 50); Vercodela.setLocation (100, 165); // กล่องข้อความยืนยันรหัส vercodetxt = new jtextfield (); vercodetxt.setsize (100, 20); vercodetxt.setLocation (170, 180); // รหัสตรวจสอบ MP = myPanel ใหม่ (); MP.Setsize (100, 30); MP.SetLocation (280, 175); // วิธีการเข้าสู่ระบบกล่องเลือก JCOMBOBOX XLK = ใหม่ JCOMBOBOX (); xlk.setsize (60, 20); XLK.SetLocation (250, 220); xlk.additem ("ออนไลน์"); xlk.additem ("ล่องหน"); xlk.additem ("ออกไป"); this.setLayout (NULL); this.setsize (500, 400); this.add (userla); this.add (pwdla); this.add (usertxt); this.add (แน่นอน); this.add (quitbt); this.add (Vercodela); this.add (vercodetxt); this.add (MP); this.add (xlk); Surebt.addactionListener (นี่); quitbt.addactionListener (นี้); this.setVisible (จริง); } // การจัดการเหตุการณ์เฉพาะโมฆะสาธารณะ ActionPerformed (ActionEvent E) {// รับแหล่งที่มาของเหตุการณ์การหล่อ JButton BT = (JButton) E.GetSource (); // รับข้อความที่แสดงบนปุ่มสตริง str = bt.getText (); if (str.equals ("เข้าสู่ระบบ")) {ถ้า (! checkisnull ()) {// รับชื่อผู้ใช้ที่ป้อนโดยผู้ใช้สตริงผู้ใช้ = usertxt.getText (). trim (); // รับรหัสผ่านที่ป้อนโดยสตริงผู้ใช้ pwd = pwdtxt.getText (). trim (); if (checkuserandpwd (ผู้ใช้, pwd)) {// ซ่อนหน้าต่างการเข้าสู่ระบบปัจจุบัน this.setVisible (เท็จ); // ตรวจสอบว่าหน้าต่างหลักถูกสร้างขึ้นสำเร็จเฟรมเมนเฟรม = ใหม่เมนเฟรม (); } else {// ถ้ามันผิดกล่องแสดงผลจะปรากฏขึ้น joptionpane pane = new Joptionpane ("ข้อผิดพลาดของผู้ใช้หรือรหัสผ่าน"); กล่องโต้ตอบ jdialog = pane.createdialog (นี้ "คำเตือน"); Dialog.show (); }}} else {// เรียกหนึ่งในคลาสระบบเพื่อออกจาก System.Exit (0); }} private boolean checkisnull () {boolean flag = false; if (usertxt.getText (). trim (). equals (")) {flag = true;} else {ถ้า (pwdtxt.getText (). trim (). เท่ากับ (")) {flag = true; }} return flag; } private boolean checkuserandpwd (ผู้ใช้สตริง, สตริง pwd) {boolean result = false; ลอง {filereader file = new filereader ("d: // workspaces // myeclipse 8.5 // testgui.txt"); bufferedReader bre = new bufferedReader (ไฟล์); string str = bre.readline (); ในขณะที่ (str! = null) {string [] strs = str.split (","); if (strs [0] .equals (ผู้ใช้)) {ถ้า (strs [1] .equals (pwd)) ผลลัพธ์ = true; } str = bre.readline (); } file.close (); } catch (exception ex) {system.out.print (""); } ผลตอบแทนผลลัพธ์; }} // คลาสเมนเฟรมนำเข้า Javax.swing.*; เมนเฟรมระดับสาธารณะขยาย JFrame {mainframe สาธารณะ () {this.setsize (300, 300); this.setVisible (จริง); }} // การสร้างรหัสการตรวจสอบการนำเข้า java.awt.*; นำเข้า Java.util.*; MyPanel คลาสสาธารณะขยายแผง {Public Void Paint (กราฟิก g) {int height = 50; ความกว้าง int = 90; // กล่องรหัสตรวจสอบพื้นหลังสี g.setColor (color.light_gray); // เติมรหัสพื้นหลังการตรวจสอบ G.FillRect (0, 0, ความกว้าง, ความสูง); G.SetColor (color.black); G.DrawRect (0, 0, WIDTH-1, ความสูง -1); สุ่ม r = ใหม่สุ่ม (); // ตั้งค่าจุดรบกวนสำหรับ (int i = 0; i <100; i ++) {int x = r.nextint (ความกว้าง) -1; int y = r.nextint (ความสูง) -1; G.Drawoval (x, y, 2, 2); } G.SetFont (ฟอนต์ใหม่ ("ตัวหนา", font.bold, 20)); // ตั้งค่าตัวอักษรรหัสการตรวจสอบและขนาด g.setColor (color.red); // ตั้งค่ารหัสการตรวจสอบสีฟอนต์ // สร้างรหัสการตรวจสอบแบบสุ่มถ่าน [] tmp = ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" StringBuilder sb = new StringBuilder (); สำหรับ (int i = 0; i <4; i ++) {int pos = r.nextint (tmp.length); ถ่าน C = TMP [POS]; sb.append (c + ""); } G.DrawString (sb.toString (), 10, 15); // เขียนรหัสการตรวจสอบ}} // การใช้งานกล่องนำเข้า java.awt.*; นำเข้า java.awt.event.*; นำเข้า Javax.swing*; // jpanel panel = new JPanel (); // สร้างแผง JPanel comboBox = new JcomboBox (); combobox.additem ("ออนไลน์"); combobox.additem ("ล่องหน"); combobox.additem ("ออก"); this.add (combobox); //this.add(panel); this.setsize (200, 100); this.setDefaultCloseOperation (jframe.exit_on_close); this.setVisible (จริง); }} // ทดสอบคลาสสาธารณะ testqqgui {/** * @param args */โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// วิธีการที่สร้างอัตโนมัติโดยอัตโนมัติ qqgui frame = new qqgui (); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น