2

JEdi​​torPane のすべてのリンクをクリック可能にしたいと考えています。この回答のコードを使用しようとしましたが、リンクをクリックしても何も起こらないため、おそらく何か間違ったことをしたのでしょう。これが私のコードです:

JEditorPane news = new JEditorPane();
news.setSize(Size.L_NEWS);
news.setLocation(Position.L_NEWS);
news.setFocusable(false);
news.setBackground(new Color(255, 255, 255, 0));
news.setEditable(false);
news.setEnabled(false);
news.setOpaque(false);
news.setVisible(true);
news.setEditorKit(JEditorPane.createEditorKitForContentType("text/html"));
news.setText(getNewsHTML.getNewestNews());
try{
    UIManager.setLookAndFeel(
    UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e){
    e.printStackTrace();
}
news.addHyperlinkListener(new HyperlinkListener() {
    public void hyperlinkUpdate(HyperlinkEvent e) {
        if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
            if(Desktop.isDesktopSupported()) {
                try {
                    Desktop.getDesktop().browse(e.getURL().toURI());
                }
                catch (IOException | URISyntaxException e1) {
                    e1.printStackTrace();
                }
            }
        }
    }
}
);
login_form.add(news);

そしてここ-私の輸入品(おそらくそれらが問題です):

import java.awt.Color;
import java.awt.Desktop;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;

なにが問題ですか?Eclipse のコンソールへの出力がありません。

4

1 に答える 1

7

私のコメントから:

ここで私の簡単な例を参照してください:

http://i.stack.imgur.com/SglJF.png

あなたの問題はここにあります:

news.setEnabled(false);

無効に設定しないでください。そうしないと、マウス クリックなどのイベントをキャッチできなくなります。

また、なぜあなたが持っているのかわからない:

news.setFocusable(false);
news.setVisible(true);

コンポーネントを可視に設定する必要はありません。コンテナに追加してコンテナを可視にするだけです。また、後で問題が発生する可能性があるため、フォーカス不能にしないでください。あなたsetEditable(false)で十分なはずです(ユーザーはフォーカス可能性に関係なく編集できないため)

于 2013-02-13T20:36:31.430 に答える