2

アプリケーションで Jtextpane を使用しています。[PKG-MEDIA] のようなタグを jtextpane に追加する必要がありました。jtextpane で他のテキストを編集できますが、このタグを編集しないでください。

  public static void main(String args[]) {
    JFrame j = new JFrame("Hello!");
    j.setSize(200, 200);
    JTextPane k = new JTextPane();
    k.setFont(new Font("Akshar Unicode Regular", Font.PLAIN, 17));
    k.setText("this is a test code [PKG-MEDIA]. I want to make this tag [PKG-1234] not editable");
    j.add(k);
    j.setVisible(true);
    j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
4

2 に答える 2

7

Use DocumentFilter. You can check whether in sert (or remove) is allowed in the position edit happens

See for example this

于 2013-01-08T09:38:07.523 に答える
4

この効果を実現するには、実装する必要がありますStyledDocument(拡張を試みますDefaultStyledDocument)。そこでは、編集できないテキストセクションのリストを維持し、それらの内部での変更を拒否しinsertString()ますremove()

たとえば、offsetが編集不可の範囲内にある場合はinsertString()、変更せずにそのまま戻ります。

ユーザーがテキストを削除しようとすると、保護された範囲のテキストのみを削除しますremove()

于 2013-01-08T09:30:49.077 に答える