0

我有一个代码可以让用户将图片插入到他的文本文档中。我确实有一个 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);

            }
4

1 回答 1

1

查看javadoc的方法链接removeStyle(String stylename)

总之,您需要做的是为上述方法提供您希望从文档中删除的样式的名称。所以在你的情况下(根据你的例子)

textPane.removeStyle("StyleName");

现在,要使用退格键删除它,您需要跟踪插入的图像(或者更确切地说,包含图像的样式)的插入位置,以及相应的样式名称在哪里命名。然后,在退格上,不断检查是否需要删除,如果需要,使用removeStyle("relevantStyleName")删除

于 2013-03-07T14:46:35.973 回答