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

这应该这样做:

mainText.setContentType("text/html");
String image = String.format("<img src=\"%s\">", imageChooser.getSelectedFile());
mainText.setText(image);
于 2010-06-01T16:17:43.127 回答
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 回答