Как выделить кнопки, когда на них наведен указатель мыши в Java (например, подсветка кнопок «Пуск» в XP)? - PullRequest
2 голосов
/ 05 июня 2011

Если указатель мыши наведен на кнопку запуска в Windows XP, он подсвечивается. Я хочу сделать то же самое в Java. Кто-нибудь может мне помочь?

Ответы [ 2 ]

4 голосов
/ 05 июня 2011

Возможное решение - создать значок для вашей кнопки, который будет отображаться при наведении курсора, а затем добавить его к кнопке через setRolloverIcon. Модель мыши сделает все, что нужно для отображения этой иконки.

И еще одно решение - добавить ChangeListener в модель кнопки. В слушателе, если isRollover () возвращает true, измените отображение.

например. 1-й техники.

import javax.swing.*;
import java.net.URL;
import java.awt.Image;
import javax.imageio.ImageIO;

class ButtonRollover {
    public static void main(String[] args) throws Exception {
        URL imageUrl2 = new URL("http://pscode.org/media/stromlo2.jpg");
        URL imageUrl1 = new URL("http://pscode.org/media/stromlo1.jpg");

        final Image image2 = ImageIO.read(imageUrl2);
        final Image image1 = ImageIO.read(imageUrl1);

        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JButton button = new JButton("Hover Me!");

                button.setIcon(new ImageIcon(image2));
                button.setRolloverIcon(new ImageIcon(image1));

                JOptionPane.showMessageDialog(null, button);
            }
        });
    }
}
1 голос
/ 05 июня 2011

Это для веб-страницы? Если это так, вы можете легко сделать это с помощью CSS.

Требуется дополнительная информация, действительно.

...