首页javajtextpaneJava Swing - 如何选择所有文本双击...

Java Swing - 如何选择所有文本双击...

我们想知道如何选择所有文本双击。...
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.text.AbstractDocument;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.DocumentFilter;

public class Main extends JFrame {
  private JPanel panel = new JPanel();
  private JTextPane tpane = new JTextPane();
  private AbstractDocument abDoc;

  public Main() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Document doc = tpane.getStyledDocument();
    if (doc instanceof AbstractDocument) {
      abDoc = (AbstractDocument) doc;
      abDoc.setDocumentFilter(new DocumentSizeFilter(3));
    }
    panel.add(tpane);
    add(panel);
    pack();
  }
  public static void main(String... args) {
    new Main().setVisible(true);
  }
}

class DocumentSizeFilter extends DocumentFilter {
  int len;
  public DocumentSizeFilter(int max_Chars) {
    len = max_Chars;
  }
  public void insertString(FilterBypass fb, int offset, String str,
      AttributeSet a) throws BadLocationException {
    System.out.println("In DocumentSizeFilter's insertString method");
    if ((fb.getDocument().getLength() + str.length()) <= len){
      super.insertString(fb, offset, str, a);
    }
  }
  public void replace(FilterBypass fb, int offset, int length, String str,
      AttributeSet a) throws BadLocationException {
    System.out.println("In DocumentSizeFilter's replace method");
    if ((fb.getDocument().getLength() + str.length() - length) <= len){
      super.replace(fb, offset, length, str, a);
    }
  }
}