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 に答える