1

エディターおよびレンダラーとしてJTable使用するがあります。JTextPane「スペース」文字をリッスンし、最後の単語が URL であるかどうかを確認し、そうである場合は、この属性を使用してハイパーリンクとしてエディターに追加する keyListener をエディターに追加しましたattrs.addAttribute(HTML.Attribute.HREF, url);。テキストを貼り付けるときに、これでは URL がハイパーリンクに変換されないことがすぐにわかったので、DocumentFilter.

DocumentFilter挿入/置換しようとしているテキストに URL が含まれているかどうかをチェックし、それらの URL をHTML.Attribute.HREF属性と残りのテキストでそのまま挿入/置換するかどうかを確認する を作成するにはどうすればよいですか?

4

2 に答える 2

1

例を参照してくださいhttp://java-sl.com/tip_autocreate_links.html DocumentFilter を使用する必要はありません。リスナーで十分です。

挿入されたコンテンツをダミー属性でマークし、それをハイパーリンク html に置き換えるだけです。

于 2012-10-29T06:21:32.227 に答える
-1
// somewhere add text reformated as html link
setText("<HTML>Click the <FONT color=\"#000099\"><U>link</U></FONT>"
        + " to go to the Java website.</HTML>");

// somewhere add a listener for clicks
addActionListener(new OpenUrlAction());

// Define uri and open action
 final URI uri = new URI("http://java.sun.com");
    class OpenUrlAction implements ActionListener {
      @Override public void actionPerformed(ActionEvent e) {
        open(uri);
      }
    }

// Define open uri method
private static void open(URI uri) {
    if (Desktop.isDesktopSupported()) {
      try {
        Desktop.getDesktop().browse(uri);
      } catch (IOException e) { /* TODO: error handling */ }
    } else { /* TODO: error handling */ }
于 2012-10-28T19:55:11.227 に答える