0

JEdi​​torPaneを使用して(編集不可モードで)フレーム内のテキストファイルを開こうとしています。ただし、入力ストリームと出力ストリームの設定に問題があると思います。親切に、私のコードを見て、どこが間違っているのかを教えてください。


import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class TextEditor extends JFrame{

private JEditorPane editorpane;
JScrollPane editorScrollPane;
String filename="D:\\abc.txt";
Reader filereader;

public TextEditor()
{       
        editorpane= new JEditorPane();
        editorpane.setEditable(false);

        if (filename != null) 
        {
            try 
            {
                filereader=new FileReader(filename);
                editorpane.setPage(filename);
            }

            catch (IOException e) 
            {
                System.err.println("Attempted to read a bad file " + filename);
            }
         }

        else
        {
            System.err.println("Couldn't find file");
        }

        //Put the editor pane in a scroll pane.
        editorScrollPane = new JScrollPane(editorpane);
            editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        editorScrollPane.setPreferredSize(new Dimension(250, 145));
        editorScrollPane.setMinimumSize(new Dimension(10, 10));

}

public static void main(String[] args) 
{
    TextEditor obj= new TextEditor();
    obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    obj.setSize(600,600);
    obj.setLocation(100,100);
    obj.setVisible(true);
}
}
4

3 に答える 3

6

URLforとして引数を取得するにはJEditorPane.setPage、次を使用できます。

File file = new File(filename);
editorpane.setPage(file.toURI().toURL());

JEditorPaneまた、フレームにを追加して、表示されるようにすることを忘れないでください。

add(editorScrollPane);

取得しているディスクエラーを表示するには、次を追加します。

e.printStackTrace();

IOExceptionブロックに。

于 2012-09-18T13:56:37.913 に答える
2
editorpane.getEditorKit().read(filereader, editorpane.getDocument(), 0);
于 2012-09-18T13:53:24.203 に答える
1

JEdi​​torPane.setPage()は、プロトコルを含むURLを想定しています。「file:/// D:/abc.txt」を試してください。次のコードが機能するはずです。

String filename="file:///D:/abc.txt";

public TextEditor()
{
        editorpane= new JEditorPane();
        editorpane.setEditable(false);

        if (filename != null)
        {
            try
            {
                editorpane.setPage(filename);
            }

            catch (IOException e)
            {
                System.err.println("Attempted to read a bad file " + filename );
                e.printStackTrace();
            }
         }

        else
        {
            System.err.println("Couldn't find file");
        }

        //Put the editor pane in a scroll pane.
        editorScrollPane = new JScrollPane(editorpane);
            editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        editorScrollPane.setPreferredSize(new Dimension(250, 145));
        editorScrollPane.setMinimumSize(new Dimension(10, 10));
      getContentPane().add(editorScrollPane);

}
于 2012-09-18T13:51:31.427 に答える