有没有办法设置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/