Geo*_*mms 5 java swing jlabel hyperlink
这是我在名为Test2的项目中名为Test2.java的文件中的代码,该文件名为test2;
package test2;
import javax.swing.JFrame;
public class Test2 {
public static void main(String[] args) {
JFrame mainWindow = new HtmlWindow("<html>"
+ "<a href=\"http://stackoverflow.com\">"
+ "blah</a></html>");
mainWindow.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
在同一个包中,我将此代码放在一个名为HtmlWindow.java的文件中;
package test2;
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JLabel;
class HtmlWindow extends JFrame {
public HtmlWindow(String refreshGrid) {
super("blah");
setSize(300, 100);
Container content = getContentPane();
String labelText = refreshGrid;
JLabel coloredLabel = new JLabel (labelText, JLabel.CENTER);
content.add(coloredLabel, BorderLayout.NORTH);
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行项目时,我在预期位置得到一个带有"blah"字样的窗口,蓝色和下划线,但是当我将鼠标悬停在单词上时光标不会改变,当我点击它时也不会发生任何事情.
我的问题如下;
Swing 不是一个功能齐全的浏览器。它支持简单的 HTML,包括链接,但不会自动更改光标样式。据我所知,您必须以编程方式执行此操作,即将鼠标侦听器添加到标签中,并在鼠标悬停在标签上时更改光标样式。显然,您可以编写自己的类LinkLabel来实现此逻辑,然后在每次需要时使用它。