我們被分配創建一個簡單的編譯器作爲一個家庭作業,它將採取一組指令(包含變量,條件,跳轉等)並對它們進行評估。這已經完成了,但我認爲我會讓我的程序更加有趣......「閃亮」,並且增加了從文本文件加載指令的能力,僅僅是爲了用戶的舒適;然而,似乎JTextArea
的append()
方法似乎並不真的喜歡我,因爲它完全沒有。下面是相關的代碼:(我使用的,而不是Swing的JFileChooser的AWT的FileDialog的,因爲它只是看起來在Mac上更好,如在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)。 –
*「我使用的是Awt的FileDialog,而不是Swing的JFileChooser,因爲它在Mac上看起來更好,」*您對Windows和* nix有什麼作用?如果只針對Mac,爲什麼要使用Java而不是..Cocoa或任何OS X本機GUI工具包的名稱? –
*「我們被分配了..一個家庭作業..這已經完成了,但我認爲我會讓我的程序更多一點......」閃亮「」*我之前打算提到這一點,但被問題的技術方面分散注意力。如果是作業,時間通常會更好地用於提高源代碼的可讀性,增加(相關)評論或編寫驗證代碼的測試。更好地提交沒有明顯錯誤的編寫良好的代碼,而不是帶有紅色條紋和破碎的金色星星的代碼,效率低下,寫得不好。 :) –