우리는 지시 사항 집합 (변수, 조건, 점프 등)을 취하여 평가하는 숙제로 간단한 컴파일러를 작성했습니다. 그건 이미 끝났지 만, 프로그램을 조금만 더 "빛나는"것이라고 생각하고, 사용자 편의를 위해서 텍스트 파일에서 명령어를로드하는 기능을 추가했습니다. 그러나, 그것은 정확히 아무것도하지 않는 것처럼 JTextArea
의 append()
방법이 나를 정말로 좋아하는 것처럼 보이지 않는 것처럼 보입니다. 여기에 관련 코드입니다 : (. 단순히 맥에 잘 보이므로 내가 대신 스윙의 JFileChooser로의 AWT의의 FileDialog를 사용하고, Apple's official recommendation에서 볼 수 있듯이) JTextArea의 append() 메소드가 작동하지 않는 것 같습니다.
BufferedReader bufferedReader;
File file;
FileDialog fileDialog = new FileDialog (new Frame(), "Open File", FileDialog.LOAD);
String line;
fileDialog.setVisible (true);
if (fileDialog.getFile() != null) {
file = new File (fileDialog.getDirectory() + fileDialog.getFile());
input.setText (""); // delete old first
try {
bufferedReader = new BufferedReader (new FileReader (file));
line = bufferedReader.readLine();
while (line != null) {
input.append (line);
System.out.println (line);
line = bufferedReader.readLine();
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
는
이 코드 포인트에 사용되는 input
변수는 JTextArea 인스턴스 재미있는 점은 - while
루프 내의 System.out.println()
호출 덕분에 파일 내용이 표준 출력에 기록되는 것을 볼 수 있기 때문에 파일 읽기 부분이 완벽하게 작동해야합니다. 그러나 JTextArea
에는 아무 것도 나타나지 않고 StackOverflow에서 찾은 기존 솔루션을 모두 시도했습니다. 여기에는 repaint()
, revalidate()
및 updateUI()
메서드 호출이 포함됩니다.
무엇이 누락 되었습니까? 모든 답변 주셔서 대단히 감사합니다!
[JTextComponent.read (Reader, Object)] (http://docs.oracle.com/javase/7/docs/api/javax/swing/text/JTextComponent.html#read%)를 사용하여 문제를 단계별로 조사하십시오. 28java.io.Reader, % 20java.lang.Object % 29). –
* "Swing의 JFileChooser 대신에 Awt의 FileDialog를 사용하고 있습니다. Mac에서 더 좋아 보이기 때문입니다."* Windows 및 * nix에서는 무엇을하고 있습니까? Mac 만 타겟팅하는 경우 .. 코코아가 아닌 Java를 사용하거나 OS X 기본 GUI 툴킷 이름이 무엇이든간에 –
* "우리는 숙제를 배정 받았다. 이미 끝났지 만 내 프로그램을 조금 더 만들 것이라고 생각했다."반짝 반짝 빛났다. "나는이 말을하기 전에 의미했지만 문제의 기술 측면에 산만 해졌다. . 숙제 인 경우 소스의 가독성 향상, 관련성있는 주석 추가 또는 코드를 증명하는 테스트 작성에 더 나은 시간을 보내는 것이 좋습니다. 빨간색 줄무늬와 금색 별이 끊어지는 코드가 비효율적이며 잘못 작성된 코드보다 눈에 잘 띄는 버그가없는 잘 작성된 코드를 제출하는 것이 좋습니다. :) –