0

私がやろうとしているのは、jpeg、gif、および png 画像をフィルタリングする JFilechooser を開き、ユーザーの選択を取得して JEditorPane に挿入することです。これはできますか?または私は何か不可能なことを試みていますか?これが私のプログラムのサンプルです(挿入はJMenuItemで、mainTextはJEditorPaneです)

insert.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e){
    JFileChooser imageChooser = new JFileChooser();
      imageChooser.setFileFilter(new FileNameExtensionFilter("Image Format","jpg","jpeg","gif","png"));
                int choice = imageChooser.showOpenDialog(mainText);
                if (choice == JFileChooser.APPROVE_OPTION) {
                mainText.add(imageChooser.getSelectedFile());
                }
        }
    });

私がやろうとしたことは、 add メソッドを使用することです。それが間違っていることは知っていますが、私が何をしようとしているのかを理解するためだけです。あなたが文句を言う前に、私はコードのフォーマットについて申し訳ありません.私は良いスタイルと悪いスタイルと見なされるものをすべて知っているわけではありません. どうもありがとうございました。

これは、html ファイルを保存するために使用するコードの一部です。

else if (e.getSource() == save) {
        JFileChooser saver = new JFileChooser();
        saver.setFileFilter(new FileNameExtensionFilter(".html (webpage format)" , "html"));
        int option = saver.showSaveDialog(this);
        if (option == JFileChooser.APPROVE_OPTION) {
            try {
                BufferedWriter out = new BufferedWriter(new FileWriter(saver.getSelectedFile().getPath()));
                out.write(mainText.getText());
                out.close();
            } catch (Exception exception) {
                System.out.println(exception.getMessage());
            }
        }
    }
4

2 に答える 2

0

JTextPane を使用する方が簡単です。その後、テキスト内のどこでも insertIcon(...) を使用できます。

編集:

HTML を操作しようとして運が良かったことは一度もありませんが、以前に次のようなコードを使用したことがあります。

HTMLEditorKit editorKit = (HTMLEditorKit)textPane.getEditorKit();
text = "<a href=\"abc\">hyperlink</a>";
editorKit.insertHTML(doc, textPane.getCaretPosition(), text, 0, 0, HTML.Tag.A);

したがって、おそらくコードは IMG タグの場合と同様です。

于 2010-06-01T21:33:23.800 に答える
0

これはそれを行う必要があります:

mainText.setContentType("text/html");
String image = String.format("<img src=\"%s\">", imageChooser.getSelectedFile());
mainText.setText(image);
于 2010-06-01T16:17:43.127 に答える