Die Beispiele in diesem Artikel teilen Ihnen den spezifischen Code von Java Swing mit, um das Antwortsystem für Ihre Referenz zu implementieren. Der spezifische Inhalt ist wie folgt
Wie in der obigen Abbildung gezeigt, steht der Code wie folgt für persönliche Tests zur Verfügung:
Import Java.awt.BorderLayout; Import Java.awt.Color; importieren java.awt.gridlayout; import Java.awt.event.ActionEvent; import Java.awt.event.ActionListener; Import Java.awt.event.KeyEvent; importieren java.awt.event.keyListener; Import Java.util.ArrayList; importieren java.util.list; import Java.util.random; import Javax.swing.jbutton; importieren javax.swing.jframe; import Javax.swing.jlabel; import Javax.swing.jpanel; importieren javax.swing.jtextfield; / ** * 2017-01-09 * @Author Koow * */ public class SA erweitert JFrame implements actionListener, KeyListener {private jLabel title = null; Private Jbutton Subjekt = NULL; Privat JPanel Center = NULL; // Artikel werden verwendet, um private int item1 = 0 zu springen; private int item2 = 1; private int poart itart3 = 2; private int item4 = 3; Privat Jlabel [] Formulaabel; // Wird verwendet, um verschiedene Elemente von Ausdrücken private Liste <string> AllResult zu speichern; // Wird verwendet, um zufällige Ergebnisse privat Jtextfield [] UserSulsults zu speichern; // verwendet, um den Benutzer die Ergebnisse privat JLabel [] Richter zu ermöglichen; // wird verwendet, um Symbole anzuzeigen, um anzuzeigen, ob die Benutzereingabeergebnisse die korrekte private Liste <string> inputResults = null sind; // Sie können nicht privat jtextfield ScoreField = null; private int textCount = 1; // Wird verwendet, um den aktuellen Fokus öffentlich statische void Main (String [] args) {sa s = new SA (); } public SA () {// Todo automatisch generierter Konstruktor Stub InputResults = new ArrayList <string> (); // instanziiertes Titel = new JLabel ("Die Frage ist sehr einfach, beantworten Sie ihn ernst! ~ (1 Punkt für jede Frage, 1 Punkt für die korrekte Antwort hinzufügen, keine Punkte werden abgezogen, wenn die Antwort falsch ist!)"); subine = new Jbutton ("subine"); subine.addactionListener (this); GridLayout layout = neuer gridlayout (21, 6); Center = new Jpanel (Layout); // METHODE -Instanziierungsmethode initlables () aufrufen; Inituerrestult (); initjudge (); // Füllen Sie das Mittelfeld (GridLayout) int count = 1 aus; int formulacount = 0; int userresultsCount = 0; int JudgeCount = 0; while (count <= 120) {// count % % 6 bestimmen und bestimmen, welche Komponente zu füllen ist, wenn (count % 6 == 1 || count % 6 == 2 || count % 6 == 3 || count % 6 == 4) {center.add (formulalabels [formulacount]); formulacount ++; } else if (count % 6 == 5) {Center.Add (userresults [userresultscount]); userresultsCount ++; } else if (count % 6 == 0) {Center.Add (Richter [JudgeCount]); JudgeCount ++; } count ++; } Center.add (new JLabel ()); Center.Add (New JLabel ()); Center.Add (New JLabel ("Gesamtpunktzahl:")); ScoreField = new JTextField (); ScoreField.Sesededable (false); Center.Add (ScoreField); Center.Add (New JLabel ()); Center.Add (New JLabel ()); this.add (Mitte, BorderLayout.Center); // Komponente this.add hinzufügen (Senden, BorderLayout.South); this.add (Titel, BorderLayout.North); // this.setLocation (400, 10) anzeigen; this.setvisible (true); this.setSize (500, 700); this.setDefaultCloseOperation (jframe.exit_on_close); this.settitle ("einfaches Testsystem"); try {thread.sleep (500); } catch (InterruptedException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); } userresults [0] .RequestFocus (); } / *** Diese Methode wird verwendet, um ein Array verschiedener Elemente der Formel zu initialisieren.* / Private void initlables () {int sum; int FirstNumber; int SecondNumber; AllResult = New ArrayList <String> (); // Erstellen Sie die Gleichungsbezeichnung this.formulalabels = new JLabel [80]; // Instanz jedes Etikett im Array für (int i = 0; i <80; i ++) {formulalabels [i] = new JLabel (); } // den Inhalt jedes Elements des Ausdrucks zuweisen und die Summe der Zufallsnummern in die ArrayList für spätere Überprüfungsergebnisse speichern, während (Element4 <80) {FirstNumber = new random (). NextInt (99) + 1; Formulalabels [item1] .setText (string.Valueof (FirstNumber)); Formulalabels [item2] .setText ("+"); SecondNumber = new random (). NextInt (99) + 1; Formulalabels [item3] .setText (string.Valueof (SecondNumber)); Formulalabels [item4] .setText ("="); sum = FirstNumber + SecondNumber; AllResult.Add (String.Valueof (sum)); Item1 += 4; Item2 += 4; Item3 += 4; Item4 += 4; } // für (int i = 0; i <80; i ++) {// system.out.println (formulalabels [i] .GIETTEXT ()); //}} /*** Diese Methode wird verwendet, um das userresults -Array zu instanziieren und jedes jTextfield initUserSerrestult () {userresults = new JTextField [20]; für (int i = 0; i <20; i ++) {userresults [i] = new jTextfield (); userresults [i] .Setsize (20, 20); // Der Hörer fügte nach UserSults [i] .AddeyListener (this) hinzu; }} / *** Diese Methode wird verwendet, um das Richter -Array zu instanziieren und jedes Label darin zu instanziieren. für (int i = 0; i <20; i ++) {Richter [i] = new JLabel ("teilen es"); }} // Implementieren Sie die Hörmethode, was Sie tun möchten, nachdem der Benutzer geklickt hat, um @Override public void Actionperformed (actionEvent arg0) {// Todo automatisch generierte Methode Stub int Score = 0; für (int i = 0; i <20; i ++) {// Erhalten Sie alle vom Benutzer eingegebenen Ergebnisse und speichern Sie sie in eine ArrayList. Sie können nicht inputResults.add (userresults [i] .Getext (). ToString (). Trim ()); System.out.println (userresults [i] .GIETTEXT (). ToString ()); // Nehmen Sie die vom Benutzer eingegebene Antwort heraus und vergleichen Sie sie mit den vorherigen berechneten Ergebnissen. Wenn es falsch ist, stellen Sie das nachfolgende Etikett auf die falsche Antwort. // Wenn es korrekt ist, stellen Sie es auf das richtige Antwort String -Ergebnis = userresults [i] .GeteText (). ToString (). Trim (); if (result.equals (AllResult.get (i)) {Richter [i] .setText ("Antwort ist korrekt"); Richter [i] .setforenground (color.red); Score ++; } else {Judge [i] .setText ("Fehlerantwort"); Richter [i] .setforenground (color.green); }} ScoreField.setText (String.ValueOf (Score)); } @Override public void keypressed (KeyEvent e) {// Todo automatisch generierte Methode Stub if (e.getKeyCode () == KeyEvent.vk_enter) {userresults [textCount] .RequestFocus (); if (textCount <19) {TextCount ++; }}} @Override public void keytyPed (keyEvent e) {// Todo automatisch generierte Methode Stub} @Override public void keyRepeased (keyEvent e) {// Todo auto-generierter Methode Stub}}Weitere Lernmaterialien finden Sie auf das spezielle Thema "Managementsystementwicklung".
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.