JButton 默认光标



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

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

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

根据lookAndFeel Nimbus默认值,没有像"Button.cursor"这样的属性。

我想设置一次默认光标,以便在鼠标光标移动时应用程序中的所有 JButton 都具有相同的手部光标。

你可以有一个扩展JButtoncustom button并使用它。像这样的事情:

我的定制JButton.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");

最新更新