ฉันเรียน Java มานานกว่าหนึ่งปีแล้วและฝึกฝนเว็บ ฉันพบว่าฉันต้องใช้ความรู้ที่เกี่ยวข้องกับ GUI ในโครงการ แต่ฉันไม่สามารถทำได้ มีบทความไม่มากนักบนออนไลน์นี้ดังนั้นฉันต้องกัดกระสุนและเรียนรู้ตั้งแต่เริ่มต้น อย่างไรก็ตามหลังจากเรียนรู้ฉันพบว่า GUI นั้นน่าสนใจมาก มันไม่ได้พึ่งพาอินเทอร์เน็ตเช่นโปรแกรมเว็บและมีเลย์เอาต์มากมายที่ไม่แตกต่างจาก Android มากนัก จากนั้นฉันก็พบว่าฉันตกหลุมรักการพัฒนา GUI อีกครั้ง ฉันจะไม่พูดมากแค่เพิ่มรหัส ฉันเชื่อว่าผู้ที่พัฒนา 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.mousevent; ชั้นเรียนสาธารณะ Mainui {เฟรม JFrame ส่วนตัว; Private Jtextfield Textfield; ส่วนตัว Jtextfield textfield_1; /*** เปิดแอปพลิเคชัน */ โมฆะคงที่สาธารณะหลัก (สตริง [] args) {Eventqueue.invokelater (ใหม่ runnable () {public void run () {ลอง {mainui window = ใหม่ mainui (); window.frame.setVisible (จริง); } /*** สร้างแอปพลิเคชัน */ public mainui () {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/U5F55555555555555555555555555555555555555555555 lblnewlabel.setFont (ฟอนต์ใหม่ ("宋体", font.plain, 16)); lblnewlabel.setbounds (111, 17, 287, 15); frame.getContentPane (). เพิ่ม (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 (). เพิ่ม (lblNewLabel_1); TextField = new JTextField (); textfield.setbounds (154, 64, 141, 21); frame.getContentPane (). เพิ่ม (textfield); TextField.SetColumns (10); ฉลาก jlabel = new jlabel ("/u5bc6/u7801/uff1a"); label.setFont (ตัวอักษรใหม่ ("宋体", Font.plain, 14)); label.setBounds (87, 108, 67, 15); frame.getContentPane (). เพิ่ม (ฉลาก); textfield_1 = new jtextfield (); textfield_1.SetColumns (10); textfield_1.setbounds (154, 103, 141, 21); frame.getContentPane (). เพิ่ม (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 (). เพิ่ม (lblNewLabel_2); ตัวเลือกสุดท้ายตัวเลือก = ตัวเลือกใหม่ (); ตัวเลือก. setbounds (210, 147, 74, 21); choice.add ("นักเรียน"); choice.add ("ครู"); choice.add ("systener"); frame.getContentPane (). เพิ่ม (ตัวเลือก); ปุ่มปุ่ม = ปุ่มใหม่ ("/U767B/U5F55"); button.setbounds (87, 194, 76, 23); button.addmouselistener (ใหม่ mouseadapter () {@Override โมฆะสาธารณะ mouseclicked (MouseEvent e) {string user = textfield.getText (); รหัสผ่านสตริง = textfield_1.getText (); สตริง shenfen = choice.getSelectedItem () joptionpane.ShowMessagedialog (เฟรม, shenfen+": สวัสดีบัญชีไม่สามารถว่างเปล่า!"); StudentInfo (Integer.parseint (ผู้ใช้), Integer.parseint (รหัสผ่าน), Shenfen); StudentMainView (STU); frame.getContentPane (). เพิ่ม (ปุ่ม); ปุ่มปุ่ม _1 = ปุ่มใหม่ ("/U53D6/U6D88"); button_1.setbounds (219, 194, 76, 23); frame.getContentPane (). เพิ่ม (button_1); -2. ตรรกะการตรวจสอบเข้าสู่ระบบ
แพ็คเกจ edu.gzu.stumanager.dao; นำเข้า edu.gzu.stumanager.domain.studentinfo; ชั้นเรียนสาธารณะ userloginValid {สตริงสาธารณะ isvalid (StudentInfo stu) {int idnum = stu.getIdnum (); รหัสผ่าน int = stu.getPassword (); string idntify = stu.getIdentify (); สตริงผลลัพธ์ = null; if ("นักเรียน" .Equals (idntify)) {ถ้า (idnum == 1207010209 && รหัสผ่าน == 123) {stu.setName ("Liu Mingsheng"); ผลลัพธ์ = "เข้าสู่ระบบสำเร็จ!"; } else {result = "ผู้ใช้รายนี้ไม่มีอยู่ในบัญชีนักเรียนโปรดยืนยันตัวตนของคุณและเข้าสู่ระบบอีกครั้ง!"; }} อื่นถ้า ("ครู" .Equals (idntify)) {ถ้า (idnum == 1174386356 && รหัสผ่าน == 123) {stu.setName ("ครู Liu Mingsheng"); ผลลัพธ์ = "เข้าสู่ระบบสำเร็จ!"; } else {result = "ผู้ใช้รายนี้ไม่มีอยู่ในบัญชีครูโปรดยืนยันตัวตนของคุณและเข้าสู่ระบบอีกครั้ง!"; }} อื่นถ้า ("ผู้ดูแลระบบ" .equals (idntify)) {ถ้า (idnum == 999999 && รหัสผ่าน == 123) {stu.setName ("ผู้ดูแลระบบระบบ"); ผลลัพธ์ = "เข้าสู่ระบบสำเร็จ!"; } else {result = "ผู้ใช้รายนี้ไม่มีอยู่ในบัญชีผู้ดูแลระบบระบบโปรดยืนยันตัวตนของคุณและเข้าสู่ระบบอีกครั้ง!"; }} ผลการส่งคืน; -3. วัตถุผู้ใช้ (นี่คือถั่วง่าย ๆ )
แพ็คเกจ edu.gzu.stumanager.domain; นักศึกษาชั้นเรียนสาธารณะ {Idnum int ส่วนตัว; ชื่อสตริงส่วนตัว; รหัสผ่าน INT ส่วนตัว String ส่วนตัวระบุ; Public StudentInfo (int idnum, รหัสผ่าน int, String identify) {super (); this.idnum = idnum; this.password = รหัสผ่าน; this.identify = ระบุ; } public int getIdnum () {return idnum; } โมฆะสาธารณะ setIdnum (int idnum) {this.idnum = idnum; } สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } สาธารณะ int getPassword () {ส่งคืนรหัสผ่าน; } โมฆะสาธารณะ setPassword (รหัสผ่าน int) {this.password = รหัสผ่าน; } สตริงสาธารณะ getIdentify () {return identify; } โมฆะสาธารณะ setIdentify (string identify) {this.identify = identify; -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; Public Class StudentMainView {กรอบ JFrame ส่วนตัว; Private Jtextfield Textfield; ส่วนตัว Jtextfield textfield_1; ส่วนตัว Jtextfield textfield_2; ส่วนตัว Jtextfield textfield_3; ข้อมูลนักเรียนส่วนตัว /*** สร้างเฟรม * @wbp.parser.entrypoint */ Public StudentMainView (ข้อมูลนักเรียน INFO) {this.info = ข้อมูล; } สาธารณะ jFrame getFrame () {initialize (); เฟรมกลับ; } /*** เริ่มต้นเนื้อหาของเฟรม * @wbp.parser.entrypoint */ โมฆะสาธารณะเริ่มต้น () {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 (). เพิ่ม (lblNewlabel); JPanel Panel = new JPanel (); Panel.setBounds (29, 52, 250, 180); frame.getContentPane (). เพิ่ม (แผง); 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 ()+""); Panel.Add (ฟิลด์ข้อความ); 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); Panel.Add (Canvas); 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 (). เพิ่ม (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 (ปุ่ม); ปุ่มปุ่ม _1 = ปุ่มใหม่ ("/U4E00/U95E8/U8BFE/U7A0B"); button_1.setbounds (10, 61, 76, 23); Panel_1.add (button_1); ปุ่มปุ่ม _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); ปุ่มปุ่ม _3 = ปุ่มใหม่ ("/U6700/U540E/U4E00/U95E8/U8BFE"); button_3.setbounds (10, 117, 76, 23); Panel_1.add (button_3); ตัวเลือกตัวเลือก = ตัวเลือกใหม่ (); ตัวเลือก. setbounds (10, 149, 76, 21); เลือก ADD ("เลือกหลักสูตร"); เลือก ADD ("คณิตศาสตร์ขั้นสูง"); เลือก ADD ("มหาวิทยาลัยภาษาอังกฤษ"); เลือก. ADD ("Marxism-Leninism"); เลือก ADD ("Mao Zedong คิด"); เลือก ADD ("คอมพิวเตอร์กราฟิก"); เลือก AddItemListener (itemListener ใหม่ () {@Override โมฆะสาธารณะ itemStateChanged (itemEvent E) {Object [] OBJS = E.getItemSelectable (). getSelectedObjects (); คณิตศาสตร์ ".equals (ob.toString ())) {textfield_2.settext (" คณิตศาสตร์ขั้นสูง "); textfield_3.settext (" 98 ");} อื่นถ้า (" วิทยาลัยภาษาอังกฤษ ". เท่า (ob.toString ())) {textfield_2.settext ( if ("Marxism-Leninism" .equals (ob.tostring ())) {textfield_2.settext ("marxism-leninism"); textfield_3.SetText ("73"); Panel_1.add (ตัวเลือก); -สิ่งนี้จะช่วยให้การตรวจสอบเข้าสู่ระบบง่ายขึ้น ฉันวางแผนที่จะอ่านข้อมูลจากฐานข้อมูล แต่เนื่องจากข้อ จำกัด ด้านเวลาฉันจะตรวจสอบโดยตรงและโดยตรงที่นี่ ถ้าฉันมีเวลาฉันจะทำส่วนอื่น ๆ
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น