لقد كنت أدرس Java لأكثر من عام وأمارس الويب. لقد وجدت أنني بحاجة لاستخدام المعرفة المتعلقة واجهة المستخدم الرسومية في مشروع ، لكنني لم أستطع القيام بذلك. لم يكن هناك العديد من المقالات على هذا عبر الإنترنت ، لذلك اضطررت إلى عض الرصاصة وتعلمها من الصفر. ومع ذلك ، بعد التعلم ، وجدت أن واجهة المستخدم الرسومية ممتعة للغاية. لا يعتمد على الإنترنت مثل برامج الويب ، وهناك العديد من التخطيطات التي لا تختلف تمامًا عن Android. ثم وجدت أنني وقعت في حب تطوير واجهة المستخدم الرسومية مرة أخرى. لن أقول الكثير ، فقط أضف الرمز. أعتقد أن أولئك الذين طوروا Android أو واجهات ذات صلة يفهمون الحقيقة.
دعونا نرى التأثير أولاً
1. تسجيل الدخول إلى الواجهة الرئيسية
حزمة edu.gzu.stumanager ؛ استيراد java.awt.eventqueue ؛ استيراد javax.swing.jframe ؛ استيراد javax.swing.jlabel ؛ استيراد javax.swing.joptionpane ؛ استيراد java.awt.toolkit ؛ استيراد javax.swing.jtextfield ؛ استيراد edu.gzu.stumanager.dao.userloginvalid ؛ استيراد edu.gzu.stumanager.domain.studentinfo ؛ استيراد edu.gzu.stumanager.view.studentMainview ؛ استيراد java.awt.choice ؛ استيراد java.awt.font ؛ استيراد java.awt.button ؛ استيراد java.awt.event.mouseadapter ؛ استيراد java.awt.event.mouseevent ؛ الطبقة العامة mainui {private jframe frame ؛ خاص JTextfield Textfield ؛ Private JTextField TextField_1 ؛ /*** قم بتشغيل التطبيق. */ public static void main (string [] args) {eventqueue.invokelater (new RunNable () {public void run () {try {mainui window = new mainui () ؛ window.frame.setVisible (true) ؛} catch (استثناء e) {eprintstacktrace () ؛ } /*** إنشاء التطبيق. */ public mainui () {initialize () ؛ } /*** تهيئة محتويات الإطار. */ private void initialize () {frame = new JFrame () ؛ Frame.Settitle ("/U6210/U7EE9/U7BA1/U7406/U7CFB/U7EDF/UFF08/U767B/U5F55/UFF09") ؛ Frame.SeticOnimage (toolkit.getDefaultToolkit (). getImage (mainui.class.getResource ("/image/func_list7_privmana.png"))) ؛ Frame.SetBounds (400 ، 250 ، 450 ، 300) ؛ frame.setDefaultCloseOperation (jframe.exit_on_close) ؛ frame.getContentPane (). setLayout (null) ؛ jlabel lblnewlabel = new jlabel ("/u5b66/u751f/u6210/u7ee9/u7ba1/u7406/u7cfb/u7edf/u7528/u6237/u767b/u5f55/uff01") ؛ lblnewlabel.setfont (خط جديد ("宋体" ، font.plain ، 16)) ؛ lblnewlabel.setBounds (111 ، 17 ، 287 ، 15) ؛ frame.getContentPane (). add (lblNewLabel) ؛ Jlabel lblnewlabel_1 = new Jlabel ("/u7528/u6237/u540d/uff1a") ؛ lblnewlabel_1.setfont (خط جديد ("宋体" ، font.plain ، 14)) ؛ lblnewlabel_1.setBounds (87 ، 67 ، 67 ، 15) ؛ frame.getContentPane (). ADD (lblNewLabel_1) ؛ TextField = New JTextField () ؛ TextField.SetBounds (154 ، 64 ، 141 ، 21) ؛ Frame.getContentPane (). Add (TextField) ؛ textfield.setColumns (10) ؛ JLabel Label = New JLabel ("/u5bc6/u7801/uff1a") ؛ label.setfont (خط جديد ("宋体" ، font.plain ، 14)) ؛ label.setBounds (87 ، 108 ، 67 ، 15) ؛ frame.getContentPane (). Add (label) ؛ TextField_1 = new JTextField () ؛ textfield_1.setColumns (10) ؛ textfield_1.setBounds (154 ، 103 ، 141 ، 21) ؛ Frame.getContentPane (). Add (TextField_1) ؛ jlabel lblnewlabel_2 = new jlabel ("/u6211/u7684/u8eab/u4efd/u662f/uff1a") ؛ lblnewlabel_2.setfont (خط جديد ("安体" ، font.plain ، 14)) ؛ lblnewlabel_2.setBounds (105 ، 150 ، 97 ، 15) ؛ frame.getContentPane (). add (lblNewLabel_2) ؛ اختيار الاختيار النهائي = اختيار جديد () ؛ choice.setBounds (210 ، 147 ، 74 ، 21) ؛ choice.add ("الطالب") ؛ choice.add ("المعلم") ؛ choice.add ("systener") ؛ frame.getContentPane (). Add (choice) ؛ زر زر = زر جديد ("/u767b/u5f55") ؛ button.setBounds (87 ، 194 ، 76 ، 23) ؛ button.addmouseListener (new mouseadapter () {Override public void mouseclicked (mouseevent e) {string user = textfield.getText () ؛ string password = textfield_1.gettext () ؛ string shenfen = choice.getselected () ؛ if (user.equals ("") joptionpane.showMessageDialog (الإطار ، " studentInfo (integer.parseint (user) ، integer StudentMainview (Stu) ؛ frame.getContentPane (). add (زر) ؛ Button Button_1 = زر جديد ("/u53d6/u6d88") ؛ button_1.setBounds (219 ، 194 ، 76 ، 23) ؛ frame.getContentPane (). add (button_1) ؛ }}2. منطق التحقق من تسجيل الدخول
حزمة edu.gzu.stumanager.dao ؛ استيراد edu.gzu.stumanager.domain.studentinfo ؛ الفئة العامة userloginvalid {public string isValid (studentInfo stu) {int idnum = stu.getIdnum () ؛ int password = stu.getPassword () ؛ string idntify = stu.getIdentify () ؛ نتيجة السلسلة = فارغة ؛ if ("student" .equals (idntify)) {if (idnum == 1207010209 && password == 123) {stu.setName ("liu mingsheng") ؛ النتيجة = "تسجيل الدخول بنجاح!" ؛ } آخر {result = "هذا المستخدم غير موجود في حساب الطالب. يرجى تأكيد هويتك وتسجيل الدخول مرة أخرى!" ؛ }} آخر إذا ("المعلم" .equals (idntify)) {if (idnum == 1174386356 && password == 123) {stu.setName ("المعلم liu mingsheng") ؛ النتيجة = "تسجيل الدخول بنجاح!" ؛ } آخر {result = "هذا المستخدم غير موجود في حساب المعلم. يرجى تأكيد هويتك وتسجيل الدخول مرة أخرى!" ؛ }} آخر إذا ("مسؤول النظام" .equals (idntify)) {if (idnum == 999999 && passion == 123) {stu.setName ("System Administrator") ؛ النتيجة = "تسجيل الدخول بنجاح!" ؛ } آخر {result = "هذا المستخدم غير موجود في حساب مسؤول النظام. يرجى تأكيد هويتك وتسجيل الدخول مرة أخرى!" ؛ }} نتيجة الإرجاع ؛ }}3. كائن المستخدم (هذا فاصوليا بسيطة)
حزمة edu.gzu.stumanager.domain ؛ فئة عامة studentInfo {private int idnum ؛ اسم السلسلة الخاصة ؛ كلمة مرور int الخاصة ؛ سلسلة خاصة. Public StudentInfo (int idnum ، int password ، string التعريف) {super () ؛ this.idnum = idnum ؛ this.password = كلمة المرور ؛ this.identify = تحديد ؛ } public int getIdnum () {return idnum ؛ } public void setIdnum (int idnum) {this.idnum = idnum ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } public int getPassword () {return password ؛ } public void setPassword (int password) {this.password = password ؛ } السلسلة العامة getIdentify () {return Idention ؛ } public void setIdentify (string IDENT) {this.identify = IDENT ؛ }}4. الواجهة الرئيسية بعد تسجيل الدخول الناجح
حزمة edu.gzu.stumanager.view ؛ استيراد java.awt.button ؛ استيراد java.awt.canvas ؛ استيراد java.awt.choice ؛ استيراد java.awt.color ؛ استيراد java.awt.toolkit ؛ استيراد java.awt.event.itemevent ؛ استيراد java.awt.event.itemlistener ؛ استيراد javax.swing.jframe ؛ استيراد javax.swing.jlabel ؛ استيراد javax.swing.joptionpane ؛ استيراد javax.swing.jpanel ؛ استيراد javax.swing.jtextfield ؛ استيراد edu.gzu.stumanager.domain.studentinfo ؛ فئة عامة الطالب {Private JFrame Frame ؛ خاص JTextfield Textfield ؛ Private JTextField TextField_1 ؛ Private JTextfield TextField_2 ؛ Private JTextfield TextField_3 ؛ معلومات الطالب الخاصة ؛ /*** إنشاء الإطار. * @wbp.parser.entrypoint */ public studentMainView (info studentInfo) {this.info = info ؛ } public jframe getFrame () {initialize () ؛ إطار العودة } /*** تهيئة محتويات الإطار. * @wbp.parser.entrypoint */ public void initialize () {frame = new Jframe () ؛ Frame.Settitle ("/U6210/U7EE9/U7BA1/U7406/U7CFB/U7EDF/UFF08/U5B66/U751F/U7248/UFF09") ؛ Frame.SeticOnimage (toolkit.getDefaultToolkit (). getImage (StudentMainview.class.getResource ("/Image/func_list7_privmana.png"))) ؛ Frame.SetBounds (300،150 ، 550 ، 300) ؛ frame.setDefaultCloseOperation (jframe.exit_on_close) ؛ frame.getContentPane (). setLayout (null) ؛ jlabel lblnewlabel = new Jlabel ("مرحبًا ["+info.getName ()+"] لتسجيل الدخول إلى نظام إدارة نقاط الطلاب!") ؛ lblnewlabel.setBounds (54 ، 10 ، 322 ، 15) ؛ frame.getContentPane (). add (lblNewLabel) ؛ JPanel Panel = New JPanel () ؛ Panel.SetBounds (29 ، 52 ، 250 ، 180) ؛ Frame.getContentPane (). Add (لوحة) ؛ panel.setLayout (null) ؛ jlabel lblnewlabel_1 = new jlabel ("/u6210/u7ee9/u6570/u636e") ؛ lblnewlabel_1.setBounds (94 ، 10 ، 65 ، 15) ؛ panel.add (lblNewLabel_1) ؛ jlabel lblnewlabel_2 = new JLabel ("/u5b66/u53f7/uff1a") ؛ lblnewlabel_2.setBounds (22 ، 37 ، 40 ، 15) ؛ panel.add (lblNewLabel_2) ؛ TextField = New JTextField () ؛ TextField.SetBounds (72 ، 35 ، 154 ، 21) ؛ textfield.settext (info.getIdNum ()+"") ؛ Pane.add (TextField) ؛ textfield.setColumns (10) ؛ jlabel lblnewlabel_3 = new JLabel ("/u59d3/u540d/uff1a") ؛ lblnewlabel_3.setBounds (22 ، 67 ، 44 ، 15) ؛ panel.add (lblNewLabel_3) ؛ TextField_1 = new JTextField () ؛ textfield_1.setBounds (72 ، 66 ، 154 ، 21) ؛ textfield_1.settext (info.getName ()) ؛ panel.add (textfield_1) ؛ textfield_1.setColumns (10) ؛ canvas canvas = new canvas () ؛ canvas.setbackground (color.blue) ؛ canvas.setBounds (22 ، 100 ، 205 ، 1) ؛ Pane.add (قماش) ؛ Jlabel lblnewlabel_4 = new Jlabel ("/u8bfe/u7a0b/u540d") ؛ lblnewlabel_4.setBounds (22 ، 116 ، 47 ، 15) ؛ panel.add (lblNewLabel_4) ؛ Jlabel lblnewlabel_5 = New JLabel ("/u6210/u7ee9") ؛ lblnewlabel_5.setBounds (160 ، 116 ، 43 ، 15) ؛ Panel.add (lblnewlabel_5) ؛ TextField_2 = new JTextField () ؛ TextField_2.setBounds (22 ، 140 ، 123 ، 21) ؛ panel.add (textfield_2) ؛ textfield_2.setColumns (10) ؛ textfield_3 = new JTextField () ؛ TextField_3.setBounds (159 ، 140 ، 66 ، 21) ؛ Panel.add (TextField_3) ؛ textfield_3.setColumns (10) ؛ JPanel Panel_1 = New JPanel () ؛ Panel_1.setBounds (317 ، 52 ، 110 ، 180) ؛ frame.getContentPane (). add (panel_1) ؛ panel_1.setLayout (null) ؛ jlabel lblnewlabel_6 = new jlabel ("/u64cd/u4f5c/u83dc/u5355") ؛ lblnewlabel_6.setBounds (15 ، 10 ، 54 ، 15) ؛ panel_1.add (lblnewlabel_6) ؛ زر زر = زر جديد ("/u7b2c/u4e00/u95e8/u8bfe/u7a0b") ؛ button.setBounds (10 ، 31 ، 76 ، 23) ؛ panel_1.add (زر) ؛ زر Button_1 = زر جديد ("/u4e00/u95e8/u8bfe/u7a0b") ؛ button_1.setBounds (10 ، 61 ، 76 ، 23) ؛ panel_1.add (button_1) ؛ زر Button_2 = زر جديد ("/u4e0a/u4e00/u95e8/u8bfe/u7a0b") ؛ button_2.setActionCommand ("/u4e0a/u4e00/u95e8/u8bfe/u7a0b") ؛ button_2.setBounds (10 ، 90 ، 76 ، 23) ؛ panel_1.add (button_2) ؛ زر Button_3 = زر جديد ("/u6700/u540e/u4e00/u95e8/u8bfe") ؛ button_3.setBounds (10 ، 117 ، 76 ، 23) ؛ panel_1.add (button_3) ؛ اختيار الاختيار = اختيار جديد () ؛ choice.setBounds (10 ، 149 ، 76 ، 21) ؛ اختر. Add ("Select Course") ؛ اختر. Add ("الرياضيات المتقدمة") ؛ اختيار. add ("الجامعة الإنجليزية") ؛ اختر. add ("الماركسية اللينينية") ؛ اختر. add ("Mao Zedong Thought") ؛ اختيار. add ("رسومات الكمبيوتر") ؛ choice.additemListener (new itemListener () {Override public void itemStateChanged (itemEvent e) {object [] objs = Mathematics ".equals (ob.toString ()))) {textfield_2.settext (" Mathematics Advanced ") ؛ textfield_3.settext (" 98 ") ؛} آخر (" الكلية الإنجليزية ". إذا كان ("الماركسية اللينينية" .equals (OB.ToString ()) {textfield_2.settext ( TextField_3.settext ("73") ؛ panel_1.add (choice) ؛ }}سيمكن هذا من التحقق السهل تسجيل الدخول. لقد خططت لقراءة البيانات من قاعدة البيانات ، ولكن نظرًا لقيود الوقت ، سأتحقق منها ببساطة ومباشرة هنا. إذا كان لدي وقت ، سأفعل أجزاء أخرى.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.