[자바] 소스를 짜는데 문의사항있습니다.
시나브로
간단한 창을 만들어서 카드Layout으로 그림을 보고
텍스트필드에 친 내용을 txt파일에 저장하려는 프로그램을 만들어보았습니다.
다른부분은 돌아가는데 유독 저장 이벤트 부분만이 오류가 발생하는데...
이부분 어떤부분이 틀렸는지 보고 지적부탁드립니다.
import java.awt.BorderLayout;
import java.awt.Button;
import jamport java.awt.CardLayout;
import java.awt.Container;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Panel;
import java.io.*;
import java.util.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.*;
public class PicMemo extends JFrame implements ActionListener {
private CardLayout cardLayout;
private Panel topPanel;
private JLabel picLb1, picLb2, picLb3;
private TextField fileName;
File f = new File(random.txt);
public PicMemo(){
// 프레임 생성
super(간단한 메모장);
Container pane = getContentPane();
topPanel = new Panel();
Panel pane01 = new Panel();
Panel pane02 = new Panel();
Panel pane03 = new Panel();
cardLayout = new CardLayout();
topPanel.setLayout(cardLayout);
topPanel.add(pane01,1번 패널);
topPanel.add(pane02,2번 패널);
topPanel.add(pane03,3번 패널);ImageIcon icon1 = new ImageIcon(this.getClass().getResource(pic.jpg));
ImageIcon icon2 = new ImageIcon(this.getClass().getResource(pic1.jpg));
ImageIcon icon3 = new ImageIcon(this.getClass().getResource(pic2.jpg));
picLb1 = new JLabel(icon1);
picLb2 = new JLabel(icon2);
picLb3 = new JLabel(icon3);
pane01.add(picLb1);
pane02.add(picLb2);
pane03.add(picLb3);
pane.setLayout(new BorderLayout());
pane.add(topPanel,BorderLayout.SOUTH);
Panel buttonPane = new Panel();
// TextArea ct = new TextArea(15,50);
// buttonPane.add(ct);
pane.add(buttonPane,BorderLayout.CENTER);Panel textPane = new Panel();
Label filenameLabel = new Label(저장할 내용 :);
TextField fileName = new TextField(,30);
Button save = new Button(저장);
Button exit = new Button(종료);
Button prev = new Button(이전);
Button next = new Button(다음);
save.addActionListener(this);
prev.addActionListener(this);
next.addActionListener(this);
exit.addActionListener(this);
textPane.add(filenameLabel);
textPane.add(fileName);
buttonPane.add(prev);
buttonPane.add(next);
textPane.add(save);
textPane.add(exit);
pane.add(textPane,BorderLayout.NORTH);
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if(cmd.equals(이전)) {
cardLayout.previous(topPanel);
} else if(cmd.equals(다음)) {
cardLayout.next(topPanel);
} else if(cmd.equals(종료)) {
System.exit(0);
} else if(cmd.equals(저장)) {
try {
File file = new File(test.txt);
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter out = new OutputStreamWriter(fos);
out.write(fileName.getText());
out.close();
} catch (FileNotFoundException fnfe) {
fnfe.printStackTrace();
return;
} catch(IOException ioe){
ioe.printStackTrace();
return;
}
}} public static void main(String args[]){
PicMemo ex = new PicMemo();
ex.setSize(600,550);
ex.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ex.setVisible(true);
}
}
밑에} else if(cmd.equals(저장)) { 부분부터 시작됩니다.
-
Sonya
어떤 에러가 발생한다는거죠~? 난해하넹.... 소스에서는 out.flush(); 가 빠진거 같은데....