我有一个代码,可以让用户将图片插入到他的文本文档中。 我有一个JtextPane,用户可以在其中编写一些文本并插入图片。 但如果插入图片已经不可能在不关闭整个程序的情况下将其删除。 如何通过按退格键删除图片?
我的代码现在:
@Override
public void actionPerformed(ActionEvent arg0) {
JFileChooser fileChooser = new JFileChooser();
int option = fileChooser.showOpenDialog(null);
File file = fileChooser.getSelectedFile();
if (option == JFileChooser.APPROVE_OPTION){
try {
BufferedImage image = ImageIO.read(file);
image = Scalr.resize(image, 150);
document = (StyledDocument)textPane.getDocument();
javax.swing.text.Style style = document.addStyle("StyleName", null);
StyleConstants.setIcon(style, new ImageIcon(image));
document.insertString(document.getLength(), "ignored text", style);
}
catch (Exception e){
e.printStackTrace();
}
}
if (option == JFileChooser.CANCEL_OPTION){
fileChooser.setVisible(false);
}
答案 0 :(得分:1)
查看方法removeStyle(String stylename)
link to javadoc
总之,您需要做的是为上面的方法提供您要从文档中删除的样式的名称。所以在你的情况下(基于你的例子)
textPane.removeStyle("StyleName");
现在,要使用退格键删除它,您需要跟踪哪个插入符号位置插入的图像(或者更确切地说,包含图像的样式)以及相应的样式名称在哪里。然后,在退格时,不断检查是否需要删除任何内容,如果需要,请使用removeStyle("relevantStyleName")
将其删除