JButton默认光标

时间:2014-11-28 19:24:51

标签: java swing jbutton

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

这是如何设置一个JButton的光标:

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用custom button扩展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");