java - JButton 默认光标

标签 java swing jbutton

有没有办法设置JButton组件的默认光标?

这是为一个 JButton 设置光标的方法:

JButton btn = new JButton("Click me");
btn.setCursor(new Cursor(Cursor.HAND_CURSOR));

根据lookAndFeel Nimbus defaults没有像“Button.cursor”这样的属性。

我想设置一次默认光标,这样当鼠标光标移过时,应用程序中的所有 JButton 都具有相同的手形光标。

最佳答案

您可以拥有一个扩展JButton自定义按钮 并使用它。像这样的东西:

MyCustomJButton.java

import java.awt.Cursor;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.JButton;

@SuppressWarnings("serial")
public class MyCustomJButton extends JButton implements MouseListener
{

    private Cursor defaultCursor;
    private Cursor handCursor;

    public MyCustomJButton()
    {
        super();

        init();
    }

    public MyCustomJButton(Action a)
    {
        super(a);

        init();
    }

    public MyCustomJButton(Icon icon)
    {
        super(icon);

        init();
    }

    public MyCustomJButton(String text, Icon icon)
    {
        super(text, icon);

        init();
    }

    public MyCustomJButton(String text)
    {
        super(text);

        init();
    }

    @Override
    public void mouseClicked(MouseEvent e)
    {

    }

    @Override
    public void mousePressed(MouseEvent e)
    {

    }

    @Override
    public void mouseReleased(MouseEvent e)
    {

    }

    @Override
    public void mouseEntered(MouseEvent e)
    {
        this.setCursor(handCursor);
    }

    @Override
    public void mouseExited(MouseEvent e)
    {
        this.setCursor(defaultCursor);
    }

    private void init()
    {
        defaultCursor = this.getCursor();
        handCursor = new Cursor(Cursor.HAND_CURSOR);

        addMouseListener(this);
    }

}

一旦您实现了自己的自定义按钮,就可以像实例化 JButton 一样实例化它。

MyCustomJButton myButton = new MyCustomJButton("My Button");

关于java - JButton 默认光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27194858/

相关文章:

java - 验证 Java 8 日期

java - 无法在本地设置 Marklogic Java Api?

java - 在宾果纸牌游戏中实现 Java 图形

java - 桌面应用程序的 Swing 与 JavaFx

java - 使用 JButton ActionListener 刷新 jFrame

java - 计算器:仅当鼠标悬停在测试 JFrame 类中的按钮上时才会显示按钮

Java 第一次使用按键绑定(bind),按键绑定(bind)事件未在 JPanel 上注册

java - ArrayList索引越界异常

Java UDP 数据包未从客户端程序到达服务器程序

java - 添加下划线后如何阻止 JButton 的高度发生变化?