java - 通过链接更改 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);
           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();
        }
}

如您所见,我无法更改 JLABEL lab3 的前景色。 如果可能的话,我还想改变 jframe 的边框颜色。 有人可以帮忙吗?

最佳答案

是的,这是可能的。只需提供您想要使用的前景色...

lab3.setForeground(Color.BLUE);

您也不需要鼠标监听器。只需使用 lab3.setCursor(new Cursor(Cursor.HAND_CURSOR)); 当鼠标移动到标签上时,鼠标光标就会自动更改......神奇的是: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);
            }
        });
    }

}

关于java - 通过链接更改 JLABEL 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15514445/

相关文章:

Java 按钮 mouseclicked joptionpane

java - 使 JDialog 按钮响应 Enter 键

opencv - LAB 颜色空间(与 RGB 或 HSV 相比)-OpenCV 示例?

wpf - 使用资源设置窗口背景颜色

java - Vaadin 10/11 和嵌入式 Jetty

JavaFX 'CSS' :WARNING: Could not resolve 'accent_color' while resolving lookups for '-fx-highlight-fill' from rule '*.text-input'

java - 如何将一个 EJB 3.1 注入(inject)另一个 EJB

java - 如何访问JNLP中指定的启动画面?

java - 将 JButton 图标左对齐并保持文本居中

angular - 在 Angular Material 中添加自定义颜色变量 (2+)