Java/Swingでテキストエディタ型アプリケーションを作成しようとしています。 FileChooserが動作していて、ファイルの内容をコンソールに出力できます。ファイルをJEditorPaneにロードしたいJEditorPaneにJava Swingファイルをロード
setText()を呼び出すと、テキストの値が更新されます(getTextの結果を出力できますが、実際のEditorPaneはリフレッシュしません)。私は、JEditorPane、JScrollPaneをカプセル化しているrepaint/revalidateを呼び出そうとしましたが、setTextに送信したテキストを更新するものは何もありません。
何か不足していますか?
P.S. JEditorPaneはJScrollPaneの中にラップされており、mainEditorにはJEditorPaneのsetTextメソッドに文字列を渡すメソッドがあります。
if (r == JFileChooser.APPROVE_OPTION)
{
FileInputStream fis;
BufferedReader br;
try
{
fis = new FileInputStream(
chooser.getSelectedFile()) ;
br = new BufferedReader(
new InputStreamReader(fis)) ;
String read ;
StringBuffer text = new StringBuffer() ;
while((read = br.readLine()) != null)
{
text.append(read).append("\n") ;
}
Main.frame.mainEditor.setText(text.toString()) ;
Main.frame.mainEditor.revalidate();
}
catch(IOException e1)
{
JOptionPane.showMessageDialog(this ,
"Error in File Operation" ,
"Error in File Operation" ,
JOptionPane.INFORMATION_MESSAGE) ;
}
}
ためのInputStreamのための方法あなたが全体のコードを配置した場合、私たちはあなたを助けることができるかもしれない使用。私はあなたのコードに大きな問題は見当たらず、テキストを設定するだけでそれができるはずです。あなたは "Some text blah blah blah"のような静的なStringであなたの呼び出しを置き換えようとしましたか? –