GUI로 만든 JTextArea의 텍스트 파일에서 정보를 표시하려고합니다. 파일에서 JTextArea로 정보를 가져 오는 방법을 알아 냈습니다.하지만 파일의 마지막 줄만 잡고 있습니다. 모든 라인을 표시해야합니다. 루프를 계속 바꾸지 만이 것을 파악할 수는 없습니다. 어떤 도움이라도 대단히 감사하겠습니다. 여기에 내 코드를 살펴입니다 : 코드에서FileReader를 사용하면 마지막 줄의 텍스트 파일 만 표시됩니까?
public TextArea() {
initComponents();
try {
FileReader one = new FileReader ("info.txt");
BufferedReader buf = new BufferedReader(one);
String line = "";
StringTokenizer st = null;
int lineNumber = 0, tokenNumber = 0;
//textArea.setText(line);
while ((line = buf.readLine()) != null) {
lineNumber++;
//break comma separated line using ","
st = new StringTokenizer(line, ",");
while (st.hasMoreTokens()) {
//display csv values
tokenNumber++;
line = ("Title: " + st.nextToken()
+ "\n" + "Make:" + st.nextToken()
+ "\n" + "Model:" + st.nextToken()
+ "\n" + "Year:" + st.nextToken()
+ "\n" + "Price:" + st.nextToken()
+ "\n" + "Notes:" + st.nextToken()
+ "\n" + "Details:" + st.nextToken()
+ "\n");
textArea.setText(line);
}
//reset token number
tokenNumber = 0;
//textArea.setText(line);
}
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(this, "File not found");
} catch (IOException e){
JOptionPane.showMessageDialog(this, "Data not read");
}
와우, 감사합니다. 그것은 트릭을했다. – rjdelight
StringBuilder를 사용하여 모든 라인을 연결하고'while' 루프 외부에서'textArea.setText (stringBuilder.toString())'를 수행하는 것이 더 좋을까요 – RonK
또한 내부 'while' 루프가 문제입니다. 조건은'while (st.hasMoreTokens())'이고 토큰 화 프로그램에서 특정 토큰을 하나씩 띄웁니다. 그러나 정말로 기대하는 것은이 루프가 tokanizer 당 한번 실행된다는 것입니다. 그래서'if'가 while while보다 더 좋을 것입니다. – RonK