게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 스윙좀 부탁드립니다. ㅠㅠ
게시물ID : programmer_3403짧은주소 복사하기
작성자 : LUminary
추천 : 0
조회수 : 651회
댓글수 : 4개
등록시간 : 2014/05/20 22:02:07
옵션
  • 본인삭제금지
일단 프로그램은 직선을 그리는 그림판 입니다.

목표는 이러한 그린 그림을 파일로 저장하고, 다시 불러오기 기능을 추가하는 건데요.

private class Line implements Serializable {
public Point p1, p2;

Line(int x1, int y1, int x2, int y2) {
p1 = new Point(x1, y1);
p2 = new Point(x2, y2);
}

public String toString() {
return p1 + "," + p2;
}
}
// Line 클래스의 정의입니다. 두점을 받지요 ㅠㅠ
public void mouseReleased(MouseEvent e) {
Line l = new Line(rx, ry, rx2, ry2);
lines.add(l);
}
//마우스 드래그를 풀었을때, 시작 좌표하고, 끝좌표를 받아서 lines 라는 ArrayList에 저장하여, 그렸던 직선을
다음 그릴때도 유지하도록 합니다. ㅠ

public void actionPerformed(ActionEvent e) {
if (e.getSource() == b) {
clear();
} else if (e.getSource() == b1) {

try {
String a = t.getText();
FileOutputStream f = new FileOutputStream(a);
ObjectOutputStream of = new ObjectOutputStream(f);
Line l = new Line(rx, ry, rx2, ry2);
lines.add(l);
of.writeObject(lines);
of.close();
} catch (IOException e1) {
System.out.println(e1.getMessage());
}

} else if (e.getSource() == b2) {
int retval = fileChooser.showOpenDialog(CenterPanel.this);

if (retval == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try {
FileInputStream f = new FileInputStream(file);
ObjectInputStream of = new ObjectInputStream(f);

Object li =  of.readObject();

Line lin = (Line) li;
of.close();
} catch (Exception e1) {
System.out.println(e1.getMessage());
}
}
}
}

문제는 이부분인데요. 

일단 저장하는 부분은 잘됩니다. ㅠㅠ

하지만 반대로 로드할때 에러가 나는데요. 

저장할때 부터 잘 못된건가요?

Line l = new Line(rx,ry,rx2,ry2) 하면

직선 여러개 그린거 object 타입으로 다 저장되지 않는건가요? ㅠㅠ

이상하게 파일을 불러올때 에러가뜨는 현상이 나타나서요 ㅠㅠ

load할때도 파일이 불러오지도 않구요. ㅠㅠㅠㅠ

전부는 아니지만 제가 생각할 수 있도록 힌트좀 주셨으면 합니다...

매번 와서 질문하는게 죄송하긴하지만 정말 마땅히 물어볼 곳이 없더군요. ㅠㅠㅠ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호