- 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 |
- GUI
- 클라우드
- System
- 쉘 스크립트 기초
- 안드로이드
- nginx
- docker
- API
- Shell script
- 그라파나
- synology
- Java
- LEVIATHAN
- 라즈베리파이
- Linux
- centos docker
- Python
- Android
- 메소드
- 리눅스
- ACL
- 네트워크
- 쉘 스크립트
- JSP
- 쉘 스크립트 if문
- 자바
- 프로젝트
- GPIO
- Tkinter
- RaspberryPi
- Today
- Total
IT창고
자바(JAVA) 실습 - GUI 방명록 본문
조건
1. 방명록 형식으로 만들기
2. 버튼을 누르면 이름과 글이 업데이트
3. 다시 실행할때 전에 썼던 글 불러오기
소스코드
public class Han extends Frame{
public Han() {
setSize(600, 800);
setResizable(false);
setLocation(200, 200);
setLayout(null);
init();
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
Label textLb;
Label nameLb;
TextArea textTf;
TextArea nameTf;
Button submitBt;
Label textListTitle;
Label nameListTitle;
JLabel textListContent;
JLabel nameListContent;
ArrayList<String> textArr = new ArrayList<>();
ArrayList<String> nameArr = new ArrayList<>();
public void init(){
textLb = new Label("글쓰기");
textLb.setSize(50, 50);
textLb.setLocation(20, 50);
add(textLb);
nameLb = new Label("이름");
nameLb.setSize(50, 50);
nameLb.setLocation(20, 200);
add(nameLb);
textTf = new TextArea();
textTf.setSize(300, 80);
textTf.setLocation(80, 50);
add(textTf);
nameTf = new TextArea();
nameTf.setSize(300, 80);
nameTf.setLocation(80, 200);
add(nameTf);
submitBt = new Button("확인");
submitBt.setSize(50, 50);
submitBt.setLocation(500, 70);
add(submitBt);
textListTitle = new Label("글");
textListTitle.setSize(50, 50);
textListTitle.setLocation(70, 300);
add(textListTitle);
nameListTitle = new Label("작성자");
nameListTitle.setSize(50, 50);
nameListTitle.setLocation(190, 300);
add(nameListTitle);
textListContent = new JLabel("");
textListContent.setSize(50, 500);
textListContent.setLocation(60, 370);
textListContent.setVerticalAlignment(SwingConstants.TOP);
add(textListContent);
nameListContent = new JLabel("");
nameListContent.setSize(50, 500);
nameListContent.setLocation(180, 370);
nameListContent.setVerticalAlignment(SwingConstants.TOP);
add(nameListContent);
submitBt.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text= "";
String name = "";
text = textTf.getText();
name = nameTf.getText();
textArr.add(text);
nameArr.add(name);
textTf.setText("");
nameTf.setText("");
show(textListContent, nameListContent); //화면 보여주기
save2();
}
});
load2();
show(textListContent, nameListContent);
}
private void show(JLabel korListContent, JLabel engListContent){
String totaltext = "";
String totalname = "";
for (int i = 0; i <textArr.size(); i++) {
totaltext += textArr.get(i) +"<br>";
totalname += nameArr.get(i)+ "<br>";
}
korListContent.setText("<html>" + totaltext +"</html>");
engListContent.setText("<html>" + totalname +"</html>");
}
private void load2(){
try {
// 한 줄씩 읽기
BufferedReader br = new BufferedReader(new FileReader("d:/text.txt"));
BufferedReader br2 = new BufferedReader(new FileReader("d:/name.txt"));
while (true) {
String line = br.readLine();
String line2 = br2.readLine();
if (line == null || line.length() == 0)
break;
// System.out.println(line);
textArr.add(line);
nameArr.add(line2);
}
br.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void save2(){
FileWriter fw;
FileWriter fw2;
String data = "";
String data2 = "";
try {
fw = new FileWriter("d:/text.txt");
fw2 = new FileWriter("d:/name.txt");
for (int i = 0; i < textArr.size(); i++) {
data = textArr.get(i)+"\r\n";
data2 = nameArr.get(i)+"\r\n";
fw.write(data);
fw2.write(data2);
}
fw.close();
fw2.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
결과화면
방명록을 만들며 전에 실행을 떄 썼던 글을 저장하고 불러오는 기능을 만들었습니다 try문을 써서 오류날거같은 구문을 지정해주고 버튼을 눌러 텍스트파일에 저장하는 부분이 상당히 까다로웠습니다. 먼저 입력된 글을 저장하고 불러오는 소스를 따로 구현한 후에 정상적으로 전에 쓴글을 불러오는게 가능했었습니다.
'프로그래밍 > JAVA' 카테고리의 다른 글
자바(JAVA) 실습 - 단어장 (2) | 2017.09.23 |
---|---|
자바(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 |