Os exemplos deste artigo compartilham com você o código específico do Java Swing para implementar o sistema de resposta para sua referência. O conteúdo específico é o seguinte
Conforme mostrado na figura acima, o código está disponível para testes pessoais, como segue:
importar java.awt.borderlayout; importar java.awt.color; importar java.awt.gridlayout; importar java.awt.event.actionEvent; importar java.awt.event.actionListener; importar java.awt.event.keyevent; importar java.awt.event.keylistener; importar java.util.arraylist; importar java.util.list; importar java.util.random; importar javax.swing.jbutton; importar javax.swing.jframe; importar javax.swing.jlabel; importar javax.swing.jpanel; importar javax.swing.jtextfield; / ** * 2017-01-09 * @author koow * */ public class Sa estende JFrame implementa ActionListener, KeyListener {private jlabel title = null; JButton privado envie = nulo; Private JPanel Center = NULL; // itens são usados para saltar privado int item1 = 0; private int item2 = 1; private int item3 = 2; private int item4 = 3; Formulalabels privados jlabel []; // usado para armazenar vários itens de expressões Lista privada <String> AllResult; // usado para armazenar resultados aleatórios privados jtextfield [] userResults; // usado para permitir que o usuário insira resultados privados jlabel [] juiz; // usado para exibir ícones para mostrar se os resultados da entrada do usuário estão corretos Lista privada <String> inputResults = null; // Você não pode fazer Scoretfield Private JTextfield = NULL; private int textcount = 1; // usado para gravar o foco atual estático void main (string [] args) {sa s = new SA (); } public SA () {// TODO Construtor Auto-Gerado Stub inputResults = new ArrayList <String> (); // título instanciado = new jlabel ("A pergunta é muito simples, responda seriamente! ~ (1 ponto para cada pergunta, adicione 1 ponto para uma resposta correta, nenhum ponto será deduzido se a resposta estiver errada!)"); enviar = novo jbutton ("submeter"); submit.addactionListener (isto); Layout gridlayout = novo gridlayout (21, 6); centro = novo jpanel (layout); // Método de chamada Método de instanciação initLables (); initUSerRestult (); initJudge (); // preencha o painel central (gridlayout) int conting = 1; int formulacount = 0; int userResultsCount = 0; int julgECount = 0; enquanto (contagem <= 120) {// determine a contagem % 6 e determine qual componente preencher se (contagem % 6 == 1 || contagem % 6 == 2 || contagem % 6 == 3 || contagem % 6 == 4) {Center.add (formulalabels [formulacount]); Formulacount ++; } else if (count % 6 == 5) {Center.add (userResults [userResultsCount]); UserResultScount ++; } else if (count % 6 == 0) {Center.add (juiz [JudgeCount]); JudgeCount ++; } contagem ++; } central.add (new jlabel ()); Center.add (New Jlabel ()); Center.add (New Jlabel ("Total Score:")); scorefield = new jtextfield (); scorefield.seteditable (false); Center.add (Scorefield); Center.add (New Jlabel ()); Center.add (New Jlabel ()); this.add (centro, borderlayout.center); // Adicione o componente this.add (envie, borderlayout.south); this.add (título, borderlayout.north); // mostra this.setLocation (400, 10); this.setVisible (true); this.SetSize (500, 700); this.setDefaultCloseoperation (jframe.exit_on_close); this.setTitle ("sistema de teste simples"); tente {thread.sleep (500); } catch (interruptedException e) {// TODO BLOCO DE CATCH AUTOGERATIDO E.PRINTSTACKTRACE (); } userResults [0] .requestFocus (); } / *** Este método é usado para inicializar uma matriz de vários itens da fórmula* / private void initlables () {int sum; int primeiro número; int SecondNumber; allResult = new ArrayList <String> (); // Crie o rótulo da equação this.formulalabels = new jlabel [80]; // instância cada rótulo na matriz para (int i = 0; i <80; i ++) {formulalabels [i] = new jlabel (); } // atribui o conteúdo de cada item da expressão e armazene a soma dos números aleatórios no Arraylist para obter resultados posteriores de verificação enquanto (item4 <80) {primeiroNumber = 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 ("="); soma = primeiro número + segundoNumber; allResult.add (string.valueof (soma)); Item1 += 4; Item2 += 4; item3 += 4; item4 += 4; } // for (int i = 0; i <80; i ++) {// System.out.println (formulalabels [i] .getText ()); //}} /*** Este método é usado para instanciar a matriz UserResults e instanciar cada JTextfield initUserSerStult () {userResults = new JTextfield [20]; for (int i = 0; i <20; i ++) {userResults [i] = new jtextfield (); UserResults [i] .SeStize (20, 20); // O ouvinte adicionou após o USERRESULTS [i] .adDeyListener (isto); }} / *** Este método é usado para instanciar a matriz do juiz e instanciar cada rótulo nele* / private void initJudge () {juiz = new jlabel [20]; for (int i = 0; i <20; i ++) {juiz [i] = new jlabel ("compartilhe It"); }} // Implemente o método de escuta, o que você deseja fazer depois que o usuário clica para enviar @Override public void ActionPerformed (ActionEvent Arg0) {// TODO Método Gerado Auto-Gentro Score Int = 0; for (int i = 0; i <20; i ++) {// Obtenha todos os resultados inseridos pelo usuário e salve -os em um ArrayList. Você não pode não inserir. System.out.println (userResults [i] .getText (). Tostring ()); // Retire a resposta inserida pelo usuário e compare -a com os resultados calculados anteriores. Se estiver errado, defina o rótulo subsequente para a resposta errada. // Se estiver correto, defina -o para a resposta correta, resultado da string = userResults [i] .getText (). ToString (). TRIM (); if (resultado.equals (allResult.get (i))) {juiz [i] .Settext ("Resposta está correta"); juiz [i] .setforeground (color.red); pontuação ++; } else {juiz [i] .settext ("Resposta de erro"); juiz [i] .setforeground (color.green); }} scorefield.settext (string.valueof (score)); } @Override public void KeyPressed (KeyEvent e) {// TODO Método Geralado Auto Stub if (e.getKeyCode () == keyEvent.vk_enter) {userResults [textCount] .requestFocus (); if (textCount <19) {textCount ++; }}} @Override public void KeyTyped (KeyEvent e) {// TODO Método Geral Goletomado} @Override public void keyreleased (keyEvent e) {// TODO Método Auto-Gerado Stub}}}Para mais materiais de aprendizagem, preste atenção ao tópico especial "Desenvolvimento do Sistema de Gerenciamento".
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.