我要做的是打开一个过滤jpeg,gif和png图像的JFilechooser,然后获取用户的选择并将其插入到JEditorPane中。可以这样做吗?或者我在尝试不可能的事情?这是我的程序示例。(insert是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());
}
}
}
答案 0 :(得分:0)
这应该这样做:
mainText.setContentType("text/html");
String image = String.format("<img src=\"%s\">", imageChooser.getSelectedFile());
mainText.setText(image);
答案 1 :(得分: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标签类似。