Курсор в виде руки при наведении на кнопку в Java AWT - PullRequest
0 голосов
/ 21 декабря 2018

Я создал кнопку в 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);
        }
    });
}

Спасибозаранее.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Я сделал это так после нескольких попыток:

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));
        }
    });
}
0 голосов
/ 21 декабря 2018

Ваше утверждение Cursor.getPredefinedCursor(HAND_CURSOR); в вашем методе mouseEntered не имело никакого эффекта, потому что вы только получили курсор, но ничего не сделали с ним.

Решение проще, чем вы могли ожидать.Вам не нужен ваш mouseEntered метод.Просто используйте setCursor(Cursor) метод класса Component на вашем resetButton.

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 и отображение нормального курсора при выходе из него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...