Java JButton默认光标
有没有办法设置Java JButton默认光标,java,swing,jbutton,Java,Swing,Jbutton,有没有办法设置JButton组件的默认光标? 这是如何为一个按钮设置光标的方法: JButton btn = new JButton("Click me"); btn.setCursor(new Cursor(Cursor.HAND_CURSOR)); 据我所知,并没有像“Button.cursor”这样的属性 我想设置一次默认光标,这样当鼠标光标移动到应用程序中时,应用程序中的所有JButton都有相同的指针。您可以有一个扩展JButton的自定义按钮,并使用它。比如: MyCustomJB
JButton
组件的默认光标?
这是如何为一个按钮设置光标的方法:
JButton btn = new JButton("Click me");
btn.setCursor(new Cursor(Cursor.HAND_CURSOR));
据我所知,并没有像“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");
简而言之,答案是否定的。您“可以”尝试使用AwtEventListener
监视所有mouseMoved
(entered
)事件,检查事件源以查看它是否为JButton
,以及它的光标是否未设置为HAND\u cursor
更新它。同样,你也可以制作自己的自定义按钮,并用它替换应用程序中的所有按钮……可能是一个源自nimbus one的自定义ButtonUI
(假设你正在使用该按钮),然后在UIDefaults
中设置该按钮。然后在按钮ui
中为enter和leave事件附加一个鼠标侦听器。这样,它将用于所有不显式使用另一个UI委托的按钮。“当鼠标光标移动时,应用程序中的所有JButton都有相同的指针。”当用户通过按钮进行点击时,它们应该如何反应?光标来自本机操作系统中的设置,与Nimbus、Metal无关。。。任何LookAndFeel(一些自定义的L&Fa来修改它),覆盖ButtonModel中的事件(最简单的方法是添加ChangeListener),所有这些事件都在ButtonModel中实现,然后您就错过了键盘中的事件