ตัวอย่างในบทความนี้แบ่งปันรหัสเฉพาะของ Java Swing เพื่อใช้ระบบตอบรับสำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
ดังที่แสดงในรูปด้านบนรหัสมีให้สำหรับการทดสอบส่วนบุคคลดังต่อไปนี้:
นำเข้า Java.awt.BorderLayout; นำเข้า Java.awt.Color; นำเข้า Java.awt.Gridlayout; นำเข้า java.awt.event.actionEvent; นำเข้า java.awt.event.actionListener; นำเข้า java.awt.event.KeyEvent; นำเข้า java.awt.event.keyListener; นำเข้า java.util.arraylist; นำเข้า java.util.list; นำเข้า java.util.random; นำเข้า Javax.swing.jbutton; นำเข้า Javax.swing.jframe; นำเข้า Javax.swing.jlabel; นำเข้า Javax.swing.jpanel; นำเข้า Javax.swing.jtextfield; / ** * 2017-01-09 * @author Koow * */ คลาสสาธารณะ SA ขยาย JFrame ใช้ ActionListener, KeyListener {ชื่อ JLabel ส่วนตัว = NULL; jbutton ส่วนตัวส่ง = null; ศูนย์ JPanel ส่วนตัว = NULL; // รายการที่ใช้ในการกระโดด INT ส่วนตัว 1 = 0; รายการ int ส่วนตัว 2 = 1; รายการ int ส่วนตัว 3 = 2; INT INTIM ส่วนตัว 4 = 3; private jlabel [] formulalabels; // ใช้เพื่อจัดเก็บรายการต่าง ๆ ของรายการส่วนตัว <String> allresult; // ใช้เพื่อเก็บผลลัพธ์แบบสุ่ม jtextfield ส่วนตัว [] userresults; // ใช้เพื่อให้ผู้ใช้ป้อนผลลัพธ์ส่วนตัว jlabel [] ผู้พิพากษา; // ใช้เพื่อแสดงไอคอนเพื่อแสดงว่าผลลัพธ์การป้อนข้อมูลของผู้ใช้นั้นถูกต้องรายการส่วนตัว <String> inputResults = null; // คุณไม่สามารถไม่ได้เป็นส่วนตัว jtextfield scorefield = null; INT textCount ส่วนตัว = 1; // ใช้ในการบันทึกโมฆะโฟกัสสาธารณะโฟกัสปัจจุบันหลัก (String [] args) {sa s = new Sa (); } public SA () {// TODO ที่สร้างขึ้นอัตโนมัติ stub stub inputResults = new ArrayList <String> (); // ชื่อเรื่องอินสแตนซ์ = new JLabel ("คำถามนั้นง่ายมากตอบอย่างจริงจัง! ~ (1 จุดสำหรับแต่ละคำถามเพิ่ม 1 จุดสำหรับคำตอบที่ถูกต้องจะไม่มีการหักคะแนนหากคำตอบผิด!)"); ส่ง = new JButton ("ส่ง"); subment.addactionListener (นี่); layout gridlayout = new gridlayout (21, 6); center = new JPanel (เลย์เอาต์); // วิธีการโทรวิธีการอินสแตนซ์ initlables (); inituserrestult (); initjudge (); // กรอกข้อมูลในแผงกลาง (gridlayout) int count = 1; int formulacount = 0; int userresultscount = 0; int judgeCount = 0; ในขณะที่ (count <= 120) {// กำหนด count % 6 และกำหนดส่วนประกอบที่จะเติมถ้า (นับ % 6 == 1 || นับ % 6 == 2 || นับ % 6 == 3 || นับ % 6 == 4) {center.add (สูตร [formulacount]); Formulacount ++; } อื่นถ้า (นับ % 6 == 5) {center.add (userresults [userresultscount]); userresultscount ++; } อื่นถ้า (นับ % 6 == 0) {center.add (ผู้พิพากษา [JudgeCount]); ผู้พิพากษา ++; } นับ ++; } center.add (ใหม่ jlabel ()); center.add (ใหม่ jlabel ()); center.add (ใหม่ Jlabel ("คะแนนรวม:")); scorefield = new jtextfield (); scorefield.seteditable (เท็จ); center.add (Scorefield); center.add (ใหม่ jlabel ()); center.add (ใหม่ jlabel ()); this.add (center, borderlayout.center); // เพิ่มส่วนประกอบ this.add (ส่ง, borderlayout.south); this.add (ชื่อ, Borderlayout.north); // แสดง this.setLocation (400, 10); this.setVisible (จริง); this.setsize (500, 700); this.setDefaultCloseOperation (jframe.exit_on_close); this.settitle ("ระบบทดสอบง่าย ๆ "); ลอง {thread.sleep (500); } catch (interruptedException e) {// toDo บล็อก catch block ที่สร้างขึ้นอัตโนมัติ E.PrintStackTrace (); } userresults [0] .requestFocus (); } / *** วิธีนี้ใช้เพื่อเริ่มต้นอาร์เรย์ของรายการต่าง ๆ ของสูตร* / โมฆะส่วนตัว initlables () {int sum; int firstnumber; int secondnumber; allresult = new ArrayList <String> (); // สร้างป้ายสมการนี้ formulalabels = new JLabel [80]; // อินสแตนซ์แต่ละฉลากในอาร์เรย์สำหรับ (int i = 0; i <80; i ++) {formulalabels [i] = new Jlabel (); } // กำหนดเนื้อหาของแต่ละรายการของนิพจน์และจัดเก็บผลรวมของตัวเลขสุ่มลงใน ArrayList สำหรับผลการตรวจสอบในภายหลังในขณะที่ (รายการ 4 <80) {firstNumber = ใหม่สุ่ม () NextInt (99) + 1; สูตร [item1] .settext (string.valueof (FirstNumber)); สูตร [item2] .settext ("+"); secondNumber = new random (). nextint (99) + 1; สูตร [item3] .settext (string.valueof (secondNumber)); สูตร [item4] .settext ("="); sum = firstNumber + secondNumber; allresult.add (string.valueof (ผลรวม)); รายการ 1 += 4; item2 += 4; รายการ 3 += 4; item4 += 4; } // สำหรับ (int i = 0; i <80; i ++) {// system.out.println (formulalabels [i] .getText ()); //}} /*** วิธีนี้ใช้ในการสร้างอินสแตนซ์อาร์เรย์ userresults และสร้างอินสแตนซ์แต่ละ jtextfield inituserrestult () {userResults = new JTextfield [20]; สำหรับ (int i = 0; i <20; i ++) {userresults [i] = new jtextfield (); userresults [i] .setsize (20, 20); // ผู้ฟังเพิ่มหลังจาก userresults [i] .addkeyListener (นี่); }} / *** วิธีนี้ใช้ในการสร้างอินสแตนซ์อาร์เรย์ผู้พิพากษาและสร้างอินสแตนซ์แต่ละฉลากในนั้น* / เป็นโมฆะส่วนตัวเริ่มต้น () {Judge = New JLabel [20]; สำหรับ (int i = 0; i <20; i ++) {ผู้พิพากษา [i] = new Jlabel ("แบ่งปัน"); }} // ใช้วิธีการฟังสิ่งที่คุณต้องการทำหลังจากผู้ใช้คลิกเพื่อส่ง @Override โมฆะสาธารณะ ActionPerformed (ActionEvent Arg0) {// วิธีการที่สร้างขึ้นอัตโนมัติ สำหรับ (int i = 0; i <20; i ++) {// รับผลลัพธ์ทั้งหมดที่ป้อนโดยผู้ใช้และบันทึกไว้ใน ArrayList คุณไม่สามารถ inputResults.add (userresults [i] .getText (). toString (). trim ()); System.out.println (userresults [i] .getText (). toString ()); // นำคำตอบที่ป้อนโดยผู้ใช้และเปรียบเทียบกับผลลัพธ์ที่คำนวณก่อนหน้านี้ หากผิดพลาดให้ตั้งค่าฉลากที่ตามมาเป็นคำตอบที่ไม่ถูกต้อง // ถ้าถูกต้องให้ตั้งค่าเป็นสตริงคำตอบที่ถูกต้อง = userResults [i] .getText (). toString (). trim (); if (result.equals (allresult.get (i))) {ผู้พิพากษา [i] .settext ("การตอบสนองถูกต้อง"); ผู้พิพากษา [i] .setforeground (color.red); คะแนน ++; } else {ผู้พิพากษา [i] .settext ("คำตอบข้อผิดพลาด"); ผู้พิพากษา [i] .setforeground (สีเขียว); }} scorefield.settext (string.valueof (คะแนน)); } @Override โมฆะสาธารณะ keypressed (keyevent e) {// วิธีการที่สร้างอัตโนมัติ todo stub stub ถ้า (e.getKeycode () == keyEvent.vk_enter) {userresults [textCount] .requestFocus (); if (textCount <19) {textCount ++; }}} @Override โมฆะสาธารณะ KeyTyped (KeyEvent E) {// วิธีการที่สร้างอัตโนมัติ toDo stub} @Override โมฆะสาธารณะเป็นโมฆะ Keylelesed (KeyEvent E) {// วิธีการที่สร้างอัตโนมัติ}}}}}}}}}}สำหรับสื่อการเรียนรู้เพิ่มเติมโปรดให้ความสนใจกับหัวข้อพิเศษ "การพัฒนาระบบการจัดการ"
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น