이 기사의 예제는 귀하의 참조 용 응답 시스템을 구현하기 위해 특정 Java Swing 코드를 공유합니다. 특정 내용은 다음과 같습니다
위 그림과 같이 코드는 다음과 같이 개인 테스트에 사용할 수 있습니다.
java.awt.borderlayout import; import java.awt.color; import java.awt.gridlayout; import java.awt.event.actionevent; import java.awt.event.actionListener; java.awt.event.keyevent를 가져 오기; java.awt.event.keylistener import; java.util.arraylist 가져 오기; Java.util.list 가져 오기; java.util.random import; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jtextfield; / ** * 2017-01-09 * @Author KOOW * */ Public Class SA 확장 jframe implements actionListener, keylistener {private jlabel title = null; Private JBUTTON 제출 = NULL; 개인 JPANEL CENTRE = NULL; // 항목은 개인 int item1 = 0을 점프하는 데 사용됩니다. 개인 int item2 = 1; 개인 int item3 = 2; 개인 int item4 = 3; 개인 jlabel [] 공식 라벨; // 다양한 표현 항목을 저장하는 데 사용되는 개인 목록 <string> Allresult; // 무작위 결과를 저장하는 데 사용됩니다. private jtextfield [] userresults; // 사용자가 결과를 입력하게하는 데 사용됩니다. private jlabel [] judge; // 사용자 입력 결과가 올바른 비공개 목록인지를 보여주기 위해 아이콘을 표시하는 데 사용됩니다. <string> inputResults = null; // 개인 JTEXTFIELD SCOREFIELD = NULL을 사용할 수 없습니다. 개인 int textCount = 1; // 현재 초점을 기록하는 데 사용되는 공개 정적 무효 메인 (String [] args) {sa s = new SA (); } public sa () {// todo 자동 생성 생성자 스터브 inputResults = new ArrayList <string> (); // 인스턴스화 제목 = New Jlabel ( "질문은 매우 간단합니다. 진지하게 대답하십시오! ~ (각 질문에 대해 1 포인트, 정답에 대한 1 포인트를 추가하면 답이 잘못되면 포인트가 공제되지 않습니다!); 제출 = New Jbutton ( "제출"); admital.addactionListener (this); GridLayout 레이아웃 = New GridLayout (21, 6); CENTRE = NEW JPANEL (레이아웃); // 호출 메소드 Instantiation Method initLables (); inituserRestult (); initjudge (); // 중앙 패널을 채우십시오 (GridLayout) int count = 1; int formulacount = 0; int userresultscount = 0; int judgecount = 0; while (count <= 120) {// count % 6을 결정하고 어떤 구성 요소를 채울 어떤 구성 요소를 결정합니다 (count % 6 == 1 || count % 6 == 2 || count % 6 == 3 || count % 6 == 4) {center.add (formulalabels [formulAcount]); 공식 ++; } else if (count % 6 == 5) {center.add (userresults [userresultscount]); userresultscount ++; } else if (count % 6 == 0) {center.add (judge [judgecount]); judgecount ++; } count ++; } center.add (new jlabel ()); center.add (new jlabel ()); center.add (New Jlabel ( "총 점수 :")); 스코어 필드 = 새로운 jtextfield (); scorefield.seteditable (false); Center.add (스코어 필드); center.add (new jlabel ()); center.add (new jlabel ()); this.add (Center, BorderLayout.Center); // 구성 요소 추가 this.add (제출, BorderLayout.South); this.add (title, borderlayout.north); // show this.setLocation (400, 10); this.set -Visible (true); this.setsize (500, 700); this.setDefaultCloseOperation (jframe.exit_on_close); this.settitle ( "간단한 테스트 시스템"); try {thread.sleep (500); } catch (InterruptedException e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); } userResults [0] .requestFocus (); } / ***이 메소드는 공식의 다양한 항목 배열을 초기화하는 데 사용됩니다.* / private void initlables () {int sum; int firstNumber; INT 2 차; Allresult = New ArrayList <string> (); // 방정식 레이블을 만듭니다. // (int i = 0; i <80; i ++) {formulalabels [i] = new jlabel (); } // 표현식의 각 항목의 내용을 할당하고 나중에 확인 결과를 위해 임의 숫자의 합을 배열리스트에 저장합니다 (item4 <80) {firstNumber = new Random (). nextInt (99) + 1; Formulalabels [item1] .settext (String.valueof (FirstNumber)); 공식 라벨 [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; } // for (int i = 0; i <80; i ++) {// system.out.println (formulalabels [i] .getText ()); //}} /***이 메소드는 UserResults 배열을 인스턴스화하고 각 JtextField initUserStult () {UserResults = New Jtextfield [20]를 인스턴스화하는 데 사용됩니다. for (int i = 0; i <20; i ++) {userresults [i] = new Jtextfield (); UserResults [i] .Setsize (20, 20); // USERRESULTS 다음에 추가 된 청취자 [i] .addkeylistener (this); }} / ***이 방법은 판사 배열을 인스턴스화하고 각 레이블을 인스턴스화하는 데 사용됩니다. for (int i = 0; i <20; i ++) {judge [i] = new Jlabel ( "공유"); }} // 청취 방법을 구현, 사용자가 클릭 한 후 @override public void ActionPerformed (ActionEvent Arg0) {// TODO 자동 생성 메소드 Stub int score = 0; for (int i = 0; i <20; i ++) {// 사용자가 입력 한 모든 결과를 가져 와서 배열리스트에 저장하십시오. inputresults.add (userresults [i] .getText (). toString (). trim ()); System.out.println (userresults [i] .getText (). toString ()); // 사용자가 입력 한 답을 꺼내서 이전 계산 결과와 비교하십시오. 잘못된 경우 후속 레이블을 잘못된 답변으로 설정하십시오. // 올바른 경우 정답으로 설정하십시오. string result = userResults [i] .getText (). toString (). trim (); if (result.equals (allresult.get (i))) {judge [i] .settext ( "응답은 올바른"); 판사 [i] .setforeground (color.red); 점수 ++; } else {judge [i] .settext ( "오류 답변"); 판사 [i] .setforeground (color.green); }} scorefield.settext (String.valueof (score)); } @override public void keypressed (keyevent e) {// todo 자동 생성 메소드 스터브 if (e.getKeyCode () == keyEvent.vk_enter) {userResults [textCount] .requestFocus (); if (textCount <19) {TextCount ++; }}} @override public void keytyped (keyevent e) {// todo 자동 생성 메소드 스터브} @override public void kyyReleased (keyevent e) {// todo 자동 생성 메소드 stub}}더 많은 학습 자료는 특별한 주제 "관리 시스템 개발"에주의를 기울이십시오.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.