我已经在AWT中创建了一个名为“重置”的按钮。当鼠标悬停在此按钮上时,我希望光标为手形光标。
我尝试了mouseEntered
类的MouseAdapter
方法,但是没有效果。
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);
}
});
}
谢谢。
答案 0 :(得分:0)
您的声明Cursor.getPredefinedCursor(HAND_CURSOR);
在您的mouseEntered
方法中没有任何作用,
因为只得到了光标,却什么也没做。
该解决方案比您预期的要简单。
您不需要mouseEntered
方法。
只需在Component
上使用类resetButton
的{{3}}方法。
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
,并在离开时显示普通光标。
答案 1 :(得分:0)
经过几次尝试和试验,我是这样完成的:
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));
}
});
}