Jbutton setTooltip()作为ImageIcon?

时间:2013-12-04 22:26:11

标签: java swing tooltip jbutton imageicon

我环顾四周,在这里查看各种线程。我发现最接近我试图做的那个就是这个:

Hovering over JButtons and displaying a message

基本上我正在尝试替换button.setToolTipText(“”);使用ImageIcon。我正在使用它作为您要在JFrame中访问的下一页的预览,以向用户提供下一页的概念或快速概述。 (我已经想出了成像,而不是工具提示)。

以下是我根据我在各种线程中看到的内容尝试使用的内容,但显然它不起作用,因此我问这个问题。

我使用的代码:Log.setToolTip(new ImageIcon(getIconLog));

1 个答案:

答案 0 :(得分:1)

您可以使用MouseListenerJLabel作为工具提示。像这样......

public static void main(String[] args){
     final JFrame f = new JFrame();
     f.setSize(500, 400);
     f.setVisible(true);
     f.setLayout(null);
     f.setDefaultCloseOperation(3);

     final JButton b = new JButton("ToolTip");
     b.setBounds(100, 100, 70, 70);
     f.add(b);

     final JLabel toolTip = new JLabel();
     b.addMouseListener(new MouseListener() {

        @Override
        public void mouseReleased(MouseEvent e) {

        }

        @Override
        public void mousePressed(MouseEvent e) {

        }

        @Override
        public void mouseExited(MouseEvent e) {
            f.remove(toolTip);
            f.repaint();
        }

        @Override
        public void mouseEntered(MouseEvent e) {
            try {
                toolTip.setIcon(new ImageIcon(ImageIO.read(new File("your image"))));
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            toolTip.setBounds(b.getLocation().x+b.getWidth(), b.getLocation().y-b.getHeight(), 100, 50);
            f.add(toolTip);
            f.repaint();
        }

        @Override
        public void mouseClicked(MouseEvent e) {

        }
    });

}