Java AWT 中将鼠标悬停在按钮上时的手形光标
Hand Cursor when hover on a button in Java AWT
我在 AWT 中创建了一个名为 "Reset" 的按钮。当鼠标悬停在这个按钮上时,我希望光标是手形光标。
我尝试了MouseAdapter
class的mouseEntered
方法但是没有效果。
void createResetButton() {
Button resetButton = new Button("Reset");
resetButton.setBounds(300, 335, 100, 40);
add(resetButton);
resetButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
usernameTextField.setText(null);
passwordTextField.setText(null);
invalidMessage.setVisible(false);
}
@Override
public void mouseEntered(MouseEvent e) {
Cursor.getPredefinedCursor(HAND_CURSOR);
}
});
}
提前致谢。
你的陈述Cursor.getPredefinedCursor(HAND_CURSOR);
在你的 mouseEntered
方法中没有效果,
因为你只得到了光标,但没有对它做任何事情。
解决方案比您预期的要简单。
您不需要 mouseEntered
方法。
只需在 resetButton
.
上使用 class Component
的 setCursor(Cursor)
方法
void createResetButton() {
Button resetButton = new Button("Reset");
resetButton.setBounds(300, 335, 100, 40);
add(resetButton);
resetButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
resetButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
usernameTextField.setText(null);
passwordTextField.setText(null);
invalidMessage.setVisible(false);
}
});
}
然后 AWT 将为您完成剩下的工作:在鼠标移动时显示手形光标
进入resetButton
,离开时显示正常光标。
经过几次点击和尝试,我以这种方式完成了此操作:
void createResetButton() {
Button resetButton = new Button("Reset");
resetButton.setBounds(300, 335, 100, 40);
add(resetButton);
resetButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
usernameTextField.setText(null);
passwordTextField.setText(null);
invalidMessage.setVisible(false);
}
@Override
public void mouseEntered(MouseEvent e) {
resetButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
});
}
我在 AWT 中创建了一个名为 "Reset" 的按钮。当鼠标悬停在这个按钮上时,我希望光标是手形光标。
我尝试了MouseAdapter
class的mouseEntered
方法但是没有效果。
void createResetButton() {
Button resetButton = new Button("Reset");
resetButton.setBounds(300, 335, 100, 40);
add(resetButton);
resetButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
usernameTextField.setText(null);
passwordTextField.setText(null);
invalidMessage.setVisible(false);
}
@Override
public void mouseEntered(MouseEvent e) {
Cursor.getPredefinedCursor(HAND_CURSOR);
}
});
}
提前致谢。
你的陈述Cursor.getPredefinedCursor(HAND_CURSOR);
在你的 mouseEntered
方法中没有效果,
因为你只得到了光标,但没有对它做任何事情。
解决方案比您预期的要简单。
您不需要 mouseEntered
方法。
只需在 resetButton
.
Component
的 setCursor(Cursor)
方法
void createResetButton() {
Button resetButton = new Button("Reset");
resetButton.setBounds(300, 335, 100, 40);
add(resetButton);
resetButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
resetButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
usernameTextField.setText(null);
passwordTextField.setText(null);
invalidMessage.setVisible(false);
}
});
}
然后 AWT 将为您完成剩下的工作:在鼠标移动时显示手形光标
进入resetButton
,离开时显示正常光标。
经过几次点击和尝试,我以这种方式完成了此操作:
void createResetButton() {
Button resetButton = new Button("Reset");
resetButton.setBounds(300, 335, 100, 40);
add(resetButton);
resetButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
usernameTextField.setText(null);
passwordTextField.setText(null);
invalidMessage.setVisible(false);
}
@Override
public void mouseEntered(MouseEvent e) {
resetButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
});
}