Java 使用链接更改JLABEL的颜色
如何使用java中的链接更改JLABEL的颜色Java 使用链接更改JLABEL的颜色,java,swing,colors,hyperlink,jlabel,Java,Swing,Colors,Hyperlink,Jlabel,如何使用java中的链接更改JLABEL的颜色 import java.awt.*; import javax.swing.*; import java.awt.event.*; public class XXX extends JFrame { XXX(){ final JLabel lab1=new JLabel("Username:"); final JTextField text1=new JTextField(20);
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class XXX extends JFrame {
XXX(){
final JLabel lab1=new JLabel("Username:");
final JTextField text1=new JTextField(20);
lab1.setBounds(20,140,65,20);
text1.setBounds(85,141,185,20);
add(lab1);
add(text1);
lab1.setForeground(Color.white);
final JLabel lab2=new JLabel("Password:");
final JPasswordField text2=new JPasswordField(20);
lab2.setBounds(20,165,65,20);
text2.setBounds(85,166,185,20);
add(lab2);
add(text2);
lab2.setForeground(Color.white);
final JButton a=new JButton("Sign In");
a.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//Code
}
});
a.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent me) {
a.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
public void mouseExited(MouseEvent me) {
a.setCursor(Cursor.getDefaultCursor());
}
public void mouseClicked(MouseEvent me)
{
a.setEnabled(false);
text1.setEditable(false);
text2.setEditable(false);
try {
}
catch(Exception e) {
System.out.println(e);
}
}
});
a.setBounds(85,192,80,20);
add(a);
final String strURL = "http://www.yahoo.com";
final JLabel lab3 = new JLabel("<html><a href=\" " + strURL + "\">Register</a></html>");
lab3.setBounds(170,192,52,20);
add(lab3);
lab3.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent me) {
lab3.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
public void mouseExited(MouseEvent me) {
lab3.setCursor(Cursor.getDefaultCursor());
}
public void mouseClicked(MouseEvent me)
{
text2.setEditable(false);
try {
}
catch(Exception e) {
System.out.println(e);
}
}
});
final JLabel map = new JLabel(new ImageIcon(getClass().getResource("XXXBG.png")));
map.setBounds(0,0,300,250);
add(map);
setTitle("XXX");
setSize(300,250);
setResizable(false);
setCursor(DEFAULT_CURSOR);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(8, 8);
setLayout(null);
toFront();
setVisible(true);
}
public static void main(String[] args)
{
new XXX();
}
}
import java.awt.*;
导入javax.swing.*;
导入java.awt.event.*;
公共类XXX扩展了JFrame{
XXX(){
最终JLabel lab1=新JLabel(“用户名:”);
最终JTextField text1=新的JTextField(20);
lab1.立根(20140,65,20);
文本1.立根(85141185,20);
添加(lab1);
添加(文本1);
lab1.设置前景(颜色:白色);
最终JLabel lab2=新JLabel(“密码:”);
最终JPasswordField text2=新的JPasswordField(20);
lab2.立根(20165,65,20);
文本2.立根(85166185,20);
添加(lab2);
添加(文本2);
lab2.设置前景(颜色:白色);
最终JButton a=新JButton(“登录”);
a、 addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
//代码
}
});
a、 addMouseListener(新的MouseAdapter(){
公共无效mouseenterned(MouseEvent me){
a、 setCursor(新光标(Cursor.HAND_光标));
}
public void mouseexitted(MouseEvent me){
a、 setCursor(Cursor.getDefaultCursor());
}
公共无效mouseClicked(MouseEvent me)
{
a、 setEnabled(假);
text1.setEditable(false);
text2.setEditable(false);
试一试{
}
捕获(例外e){
系统输出打印ln(e);
}
}
});
a、 挫折(85192,80,20);
添加(a);
最终字符串strURL=”http://www.yahoo.com";
最终JLabel lab3=新JLabel(“”);
lab3.立根(170192,52,20);
添加(lab3);
lab3.addMouseListener(新的MouseAdapter(){
公共无效mouseenterned(MouseEvent me){
lab3.setCursor(新光标(Cursor.HAND_光标));
}
public void mouseexitted(MouseEvent me){
lab3.setCursor(Cursor.getDefaultCursor());
}
公共无效mouseClicked(MouseEvent me)
{
text2.setEditable(false);
试一试{
}
捕获(例外e){
系统输出打印ln(e);
}
}
});
最终的JLabel映射=新的JLabel(新的图像图标(getClass().getResource(“XXXBG.png”));
地图.立根(0,0300250);;
添加(地图);
片名(“XXX”);
设置大小(300250);
可设置大小(假);
设置光标(默认光标);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
设定位置(8,8);
setLayout(空);
toFront();
setVisible(真);
}
公共静态void main(字符串[]args)
{
新XXX();
}
}
如您所见,我无法更改JLABEL lab3的前景色。
如果可能的话,我还想改变边框的颜色,就像jframe一样。
有人能帮忙吗?是的,有可能。简单地提供您想要使用的
前景
颜色
lab3.setForeground(Color.BLUE);
您也不需要鼠标侦听器。只需使用lab3.setCursor(新的Cursor(Cursor.HAND_Cursor))当鼠标移到标签上时,code>将自动更改鼠标光标…神奇的是:D
已更新
public class TestLabel01 {
public static void main(String[] args) {
new TestLabel01();
}
public TestLabel01() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
JLabel link = new JLabel("Linked in");
link.setForeground(Color.BLUE);
link.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(link);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
是的,有可能。简单地提供您想要使用的前景
颜色
lab3.setForeground(Color.BLUE);
您也不需要鼠标侦听器。只需使用lab3.setCursor(新的Cursor(Cursor.HAND_Cursor))当鼠标移到标签上时,code>将自动更改鼠标光标…神奇的是:D
已更新
public class TestLabel01 {
public static void main(String[] args) {
new TestLabel01();
}
public TestLabel01() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
JLabel link = new JLabel("Linked in");
link.setForeground(Color.BLUE);
link.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(link);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
啊,摆脱那些setBounds(…)
调用,使用布局管理器。针对您的问题:如果您希望能够设置JLabel的背景色,则需要通过调用JLabel上的setOpaque(true)
将其不透明属性设置为true
。如果这不是你想做的,那么请澄清问题。再次摆脱那些setBounds(…)
调用。。“但我会尝试使用布局管理器。你很聪明,@MadProgrammer。”。是的,嗯。嘿,还有一件事,我加上setOpaque(真的)。。但改变颜色的只是背景。我想更改JLABEL的字体颜色。我正在使用JCreator。我看不到变化。。在lab3中,仍然使用蓝色和下划线。。没有鼠标事件的代码。它不会自动改变光标。啊,摆脱那些setBounds(…)
调用,使用布局管理器。针对您的问题:如果您希望能够设置JLabel的背景色,则需要通过调用JLabel上的setOpaque(true)
将其不透明属性设置为true
。如果这不是你想做的,那么请澄清问题。再次摆脱那些setBounds(…)
调用。。“但我会尝试使用布局管理器。你很聪明,@MadProgrammer。”。是的,嗯。嘿,还有一件事,我加上setOpaque(真的)。。但改变颜色的只是背景。我想更改JLABEL的字体颜色。我正在使用JCreator。我看不到变化。。在lab3中,仍然使用蓝色和下划线。。没有鼠标事件的代码..它不会自动更改光标。我想我缺少一行jlabel的代码。。因为它没有改变(光标的东西)。还有jlabel颜色。。它总是蓝色的。。我想把它换成颜色white@DieejayPeke:然后把它改成白色——没有人阻止你这么做。@dieejaype如果你有1600万种颜色可供选择,那就让你自己淘汰吧。此外,更新了一个简单的例子,显示了颜色和鼠标。。我唯一需要做的就是。。在html行中添加字体颜色..我想我缺少一行jlabel代码。。因为它没有改变(光标的东西)。还有jlabel颜色。。它总是蓝色的。