나는 당신의 이름과 이름을 물어 보는 프로그램을 가지고 있습니다. OutputStream을 사용하여 작업 영역에 저장된 파일의 이름을 저장했습니다. BufferedReader를 사용하여 파일을 읽지 만 JOptionPane.YES_NO_DIALOG에서 예를 클릭하면 파일의 이름이 사용됩니다. 나는 시도하고 및 성명 경우 자신의 옵션 JOptionPane
을 함께 JOptionPane
를 사용하는 경우 JOptionPane에 ... 다음 text.setText (savedName), 그러나 그것은 단지 "에 오신 것을 환영합니다 널 널 (null)"버퍼 된 리더
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class BingoHelper extends JFrame implements WindowListener, ActionListener{
JTextField text = new JTextField();
//JLabel bg = new JLabel("helo");
private JButton b; {
b = new JButton("Click to enter name");
}
JPanel pnlButton = new JPanel();
public static String fn;
public static String sn;
public static int n;
File f = new File("test.txt");
public void actionPerformed (ActionEvent e){
Object[] yesNo = {"Yes",
"No",};
n = JOptionPane.showOptionDialog(null,"Would you like to use previously entered data?","Welcome Back?",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE, null, yesNo,yesNo[1]);
if (n == JOptionPane.NO_OPTION){
for(fn=JOptionPane.showInputDialog("What is your first name?");!fn.matches("[a-zA-Z]+");fn.isEmpty()){
JOptionPane.showMessageDialog(null, "Alphabet characters only.");
fn=JOptionPane.showInputDialog("What is your first name?");
}
for(sn=JOptionPane.showInputDialog("What is your second name?");!sn.matches("[a-zA-Z]+");sn.isEmpty()){
JOptionPane.showMessageDialog(null, "Alphabet characters only.");
sn=JOptionPane.showInputDialog("What is your second name?");
}
}
//JOptionPane.showMessageDialog(null, "Welcome " + fn + " " + sn + ".", "", JOptionPane.INFORMATION_MESSAGE);
text.setText("Welcome " + fn + " " + sn + ".");
b.setVisible(false);
b.setEnabled(false);
text.setVisible(true);
text.setBounds(140,0,220,20);
text.setHorizontalAlignment(JLabel.CENTER);
text.setEditable(false);
text.setBackground(Color.YELLOW);
pnlButton.setBackground(Color.DARK_GRAY);
writeToFile();
//bg.setVisible(true);
}
private void writeToFile() {
String nameToWrite = fn;
OutputStream outStream = null;
try {
outStream = new FileOutputStream(f);
outStream.write(nameToWrite.getBytes());
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f)));
String savedName = br.readLine();
//System.out.println(savedName);
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (null != outStream) {
try {
outStream.close();
} catch (IOException e) {
// do nothing
}
}
}
}
감사합니다. 그러나이 프로그램의 파일 스트리밍 부분에 대해 더 자세히 알고 싶습니다. 다음에 프로그램을 실행할 때 입력 대화 상자에 입력 한 내용 (첫 번째 메시지 대화 상자에서 아니오를 클릭 한 후)을 저장하는 프로그램이 필요합니다. 다음 번에 프로그램을 실행하고 옵션 대화 상자에서 예를 클릭하면 사용자가 마지막으로 입력 한 내용을 입력하라는 텍스트 필드를 얻으려고합니다. – JavaScrub