- NEW초롱이의 하루
- kisa
- 길은 가면, 뒤에 있다
- C언어 예술가
- Zer0 day - Zer0 day
- Information Security
- Secure-EDU
- 앙큼한유채's 일상 Story
- Library of Ezbeat (잠정 폐쇄)
- The Factory
- 안드
- 모후모후의 커뮤니티
- 공학도의 잡다한 시선
- 안드2
- IT속에 코코아
- IP주소검색(whois)
- IP주소검색(좌표포함)
- 소프트웨어 경력 관리
- 해저 케이블 지도
- MAC주소검색
- IANA
- 포트번호검색
- 자신의IP확인
- 웹페이퍼캡처
- 나의패스워드보안등급
- 웹 취약점 분석
- IT용어정리
- GitHub
- 라이브러리 모음
- 웹마당넷
- 시스템콜참고
- BCD 변환
- 보안뉴스
- 코딩도장(C, Python)
- 백준알고리즘
- 코딩테스트 연습
- 웹 사이트 테스트
- 스크립트꾸미기
- ctf대회목록
- 전자신문
- hash 크랙
- CVE
- 도메인등록
- N클라우드
- BugBountyList
- 칼리공식사이트
- CR4FTING BOX
- 아스키코드 변환
- 웹 사이트 통계 및 평가
- PDF변환
- AWS 및 클라우드 정보
- 가상화 및 서버관련
- 티오리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 리눅스
- centos docker
- 쉘 스크립트 기초
- 프로젝트
- 안드로이드
- GUI
- 쉘 스크립트 if문
- Android
- 쉘 스크립트
- Java
- 네트워크
- Shell script
- API
- 자바
- RaspberryPi
- Python
- 메소드
- ACL
- 라즈베리파이
- Linux
- 그라파나
- LEVIATHAN
- System
- GPIO
- JSP
- synology
- 클라우드
- Tkinter
- nginx
- docker
- Today
- Total
IT창고
자바(JAVA) 실습 - 단어장 본문
조건
1. 직렬화, 쓰레드 기능을 활용하여 만들기
2. 단어입력 기능구현
3. 영어단어를 보고 한글을 입력해서 정답체크기능 구현
4. GUI형식으로 만들기
소스일부분
------메뉴------
public class Menu extends Frame {
Control con;
public Menu(Control con) {
this.con = con;
setSize(600, 200);
setResizable(false);
setLocation(200, 200);
setLayout(null);
init();
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
Button vocaListBt;
Button vocaGameBt;
private void init(){
vocaListBt = new Button("단어장 수정");
vocaListBt.setSize(200, 200);
vocaListBt.setLocation(0, 0);
add(vocaListBt);
vocaGameBt = new Button("단어게임");
vocaGameBt.setSize(200, 200);
vocaGameBt.setLocation(200, 0);
add(vocaGameBt);
vocaListBt.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
con.showVoca();
}
});
vocaGameBt.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
con.showQuiz();
}
});
}
}
-------쓰레드---------
public class CountThread extends Thread {
int time;
boolean isDone = false;
Label timeLb;
public void setLabel( Label timeLb){
this.timeLb = timeLb;
}
public void setIsDone(boolean isDone){
this.isDone = isDone;
}
@Override
public void run() {
while(true){
if(timeLb == null){
continue;
}
timeLb.setText("진행시간: "+time +"초");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
time++;
if(isDone){
break;
}
}
}
}
--------단어게임----------
public class Quiz extends Frame {
Control con;
public Quiz(Control con) {
this.con = con;
setSize(500, 500);
setResizable(false);
setLocation(300, 100);
setLayout(null);
init();
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
int idx = 0;
int score = 0;
String answer = "";
Label engLb;
Label scoreLb;
Label timeLb;
TextField korTf;
CountThread th;
private void init() {
th = new CountThread();
Button homeBt = new Button("메뉴");
homeBt.setSize(50, 20);
homeBt.setLocation(5, 30);
add(homeBt);
homeBt.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
con.showMenu();
}
});
timeLb = new Label("진행시간");
timeLb.setSize(100, 50);
timeLb.setLocation(150, 50);
add(timeLb);
th.setLabel(timeLb);
th.start();
engLb = new Label("영어");
engLb.setSize(100, 50);
engLb.setLocation(100, 200);
add(engLb);
scoreLb = new Label("점수");
scoreLb.setSize(50, 50);
scoreLb.setLocation(400, 50);
add(scoreLb);
korTf = new TextField();
korTf.setSize(200, 30);
korTf.setLocation(200, 200);
add(korTf);
Button confirmBt = new Button("확인");
confirmBt.setSize(50, 20);
confirmBt.setLocation(300, 300);
add(confirmBt);
confirmBt.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String myAnswer = korTf.getText();
if (answer.equals(myAnswer)) {
score += 10;
} else {
score -= 10;
}
korTf.setText("");
idx++;
if (idx == Storage.vocaArr.size()) {
th.setIsDone(true);
engLb.setText("문제 없다");
} else {
showQuestion();
}
}
});
reset();
showQuestion();
}
private void showQuestion() {
VocaData curVoca = Storage.vocaArr.get(ranIdxArr.get(idx));
engLb.setText(curVoca.eng);
answer = curVoca.kor;
scoreLb.setText("점수: " + score);
}
ArrayList<Integer> ranIdxArr = new ArrayList<>();
private void setRan() {
ranIdxArr.clear();
ArrayList<Integer> temp = new ArrayList<>();
for (int i = 0; i < Storage.vocaArr.size(); i++) {
temp.add(i);
}
Random rd = new Random();
while (true) {
if (temp.size() == 0) {
break;
}
int ranNum = rd.nextInt(temp.size());
ranIdxArr.add(temp.get(ranNum));
temp.remove(ranNum);
}
}
public void reset() {
setRan();
idx = 0;
score = 0;
showQuestion();
}
}
결과화면
'프로그래밍 > JAVA' 카테고리의 다른 글
자바(JAVA) 실습 - GUI 방명록 (0) | 2017.09.18 |
---|---|
자바(JAVA) 개발을 위한 메소드(Method) 모음3 (0) | 2017.09.17 |
자바(JAVA)실습 - GUI 계산기 (0) | 2017.09.12 |
자바(JAVA) 실습 - GUI로 달력만들기 (0) | 2017.09.11 |
자바(JAVA) - GUI 프로그램 (0) | 2017.09.11 |