نوافذ تسجيل الدخول شائعة جدًا بشكل عام ، لذلك دعونا نكتب واحدًا لأنفسنا!
ملاحظة: العديد من الواردات مكررة لأنني كتبت لهم في عدة فئات ويجب استيرادها بشكل منفصل.
. الخاص Jlabel Pwdla ؛ Private Jlabel Vercodela ؛ // Code Code Private JTextfield UsePtxt ؛ Private JPasswordfield PWDTXT ؛ Private JTextfield Vercodetxt ؛ // Code Code Private JButton SureBt ؛ QUITBT الخاص jbutton ؛ MyPanel MP الخاص ؛ // طريقة البناء العامة qqgui () {init () ؛ } public void init () {Frame Frame = new Frame ("QQ login") ؛ // قم بإنشاء كائن التحكم (لأنه تم الإعلان أعلاه فقط ولا يعطي المساحة الفعلية) // text userla = new JLabel () ؛ userla.settext ("اسم المستخدم:") ؛ userla.setsize (60 ، 50) ؛ userla.setLocation (100 ، 80) ؛ // text password pwdla = new JLabel () ؛ pwdla.settext ("كلمة المرور:") ؛ pwdla.setsize (50 ، 50) ؛ pwdla.setLocation (100 ، 120) ؛ // مربع إدخال المستخدم USERTXT = New JTextField () ؛ USEPTXT.SETSIZE (100 ، 20) ؛ //this.setsize(width ، height) usePtxt.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) ؛ // exit button quitbt = new jbutton ("exit") ؛ 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 ("Online") ؛ XLK.Additem ("غير مرئي") ؛ XLK.Additem ("LEEP") ؛ this.setLayout (null) ؛ this.setsize (500 ، 400) ؛ this.add (userla) ؛ this.add (pwdla) ؛ this.Add (UseRtxt) ؛ this.add (surebt) ؛ this.add (QuitBt) ؛ this.add (Vercodela) ؛ this.add (vercodetxt) ؛ this.add (mp) ؛ this.add (xlk) ؛ surebt.addActionListener (هذا) ؛ quitbt.addActionListener (هذا) ؛ this.setVisible (صحيح) ؛ }. // احصل على النص المعروض على سلسلة الأزرار str = bt.getText () ؛ if (str.equals ("login")) {if (! checkisnull ()) {// احصل على اسم المستخدم الذي تم إدخاله بواسطة user user user = useRtxt.getText (). trim () ؛ // احصل على كلمة المرور التي تم إدخالها بواسطة سلسلة المستخدم pwd = pwdtxt.getText (). trim () ؛ if (checkerandpwd (user ، pwd)) {// إخفاء نافذة تسجيل الدخول الحالية this.setVisible (false) ؛ // تحقق من أن النافذة الرئيسية يتم إنشاؤها بنجاح إطار الحاسوب الرئيسي = mainframe () ؛ } آخر {// إذا كان هذا خطأ ، فسيظهر مربع العرض pane pane joptionpane = new joptionpane ("خطأ المستخدم أو كلمة المرور") ؛ مربع الحوار jDialog = pane.createdialog (هذا ، "تحذير") ؛ Dialog.show () ؛ }}} آخر {// استدعاء إحدى فئات النظام للخروج من system.exit (0) ؛ }} private boolean checkisnull () {boolean flag = false ؛ if (usErtxt.getText (). trim (). يساوي (")) {flag = true ؛} آخر {if (pwdtxt.getText (). trim (). equals (")) {flag = true ؛ }} علامة الإرجاع ؛ } private boolean checkerandpwd (string user ، string pwd) {boolean result = false ؛ حاول {fileReader file = new fileReader ("d: // workspaces // myeclipse 8.5 // testgui.txt") ؛ BufferedReader BRE = جديد BufferedReader (ملف) ؛ String str = bre.readline () ؛ بينما (str! = null) {string [] strs = str.split ("،") ؛ if (strs [0] .equals (user)) {if (strs [1] .equals (pwd)) result = true ؛ } str = bre.readline () ؛ } file.close () ؛ } catch (استثناء ex) {system.out.print ("") ؛ } نتيجة الإرجاع ؛ }} // الفئة mainframe import javax.swing.*؛ Class Mainframe public يمتد Jframe {public mainframe () {this.setsize (300 ، 300) ؛ this.setVisible (صحيح) ؛ }} // توليد رمز التحقق استيراد java.awt. عرض int = 90 ؛ // Code Code Box color G.SetColor (color.light_gray) ؛ // املأ خلفية رمز التحقق G.FillRect (0 ، 0 ، العرض ، الارتفاع) ؛ G.SetColor (color.black) ؛ G.DrawRect (0 ، 0 ، العرض -1 ، الارتفاع 1) ؛ عشوائي R = جديد عشوائي () ؛ // اضبط نقطة التداخل لـ (int i = 0 ؛ i <100 ؛ i ++) {int x = r.nextint (width) -1 ؛ int y = r.nextint (الارتفاع) -1 ؛ G.Drawoval (x ، y ، 2 ، 2) ؛ } g.setfont (خط جديد ("Bold" ، font.bold ، 20)) ؛ // قم بتعيين خط رمز التحقق وحجم G.SetColor (color.red) ؛ // قم بتعيين لون رمز التحقق // قم بإنشاء رمز التحقق العشوائي char [] tmp = ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"). StringBuilder sb = new StringBuilder () ؛ لـ (int i = 0 ؛ i <4 ؛ i ++) {int pos = r.nextint (tmp.length) ؛ char c = tmp [pos] ؛ sb.append (c + "") ؛ } g.drawString (sb.toString () ، 10 ، 15) ؛ // كتابة رمز التحقق}}} // تنفيذ مربع منسد للاستيراد java.awt.*؛ استيراد java.awt.event. // jpanel panel = new jpanel () ؛ // إنشاء لوحة JPanel comboBox = new JCombobox () ؛ combobox.additem ("Online") ؛ combobox.additem ("غير مرئي") ؛ combobox.additem ("LEEP") ؛ this.add (combobox) ؛ //this.add(panel) ؛ this.setsize (200 ، 100) ؛ this.setDefaultCloseOperation (jframe.exit_on_close) ؛ this.setVisible (صحيح) ؛ }} // اختبار الفئة العامة testqqui {/** * param args */public static void main (string [] args) {// todo method method method ququi frame = new qqgui () ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.