鼠标滚过JLabel时不显示文本

使用NetBeans(Java),我在JLabel中遇到了问题。 我已经为该JLabel分配了一个图像作为图标。

问题 - 第1次:

我想在该图标(图像)下方显示一些文本(例如 - 注销)。 这个怎么做?

问题 - 第二:

当鼠标滚过该JLabel时,我想显示一些文本。 我该怎么办?

所以,请大家通过编写代码告诉我如何处理这些事情。


1。

创建一个包含两个JLabelJPanel 。 这样您就可以控制内部组件的布局。

我使用BoxLayout和参数BoxLayout.Y_AXIS来获取图标下方的标签。

2。

使用方法component.addMouseListener(new MouseAdapter() { ... });添加一个MouseListener component.addMouseListener(new MouseAdapter() { ... }); ,你需要创建一个MouseAdapter并实现你需要的任何方法(点击这里)。

这里有一个适合你的好友的例子...但是你需要适应这个。

注意:您需要更改ImageIcon()file-path

public static void main(String[] args) {

    JFrame frame = new JFrame();
    JPanel container = new JPanel();
    JPanel iconLabelPanel = new JPanel();

    String TEXT_FIELD_TEXT = "Hover over the logout label.";

    JLabel icon = new JLabel(new ImageIcon("C:UsersGaryGoogle DrivePicturespuushss (2015-02-19 at 06.00.00).png"));
    JLabel label = new JLabel("Logout!");
    JTextField textField = new JTextField(TEXT_FIELD_TEXT);

    //Add a mouse motion listener for the JLabel
    label.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseEntered(MouseEvent e) {
            //Set text of another component
            textField.setText("You're over Logout!");
        }

        @Override
        public void mouseExited(MouseEvent e) {
            //Set text of another component
            textField.setText(TEXT_FIELD_TEXT);
        }
    });


    //Add components and set parameters for iconLabelPanel
    iconLabelPanel.setLayout(new BoxLayout(iconLabelPanel, BoxLayout.PAGE_AXIS));
    iconLabelPanel.add(icon);
    iconLabelPanel.add(label);

    //Add components and set parameters for container
    container.setLayout(new BoxLayout(container, BoxLayout.PAGE_AXIS));
    container.add(iconLabelPanel);
    container.add(textField);

    //Set parameters for frame
    frame.add(container);
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setSize(400, 400);
    frame.setVisible(true);
}

我建议阅读基本的Oracle教程,详细描述如何完成此任务。 您可以使用MouseMotionListener来确定鼠标何时滚过JLabel,并且可以通过设置JLabel教程中所述的垂直文本位置来将JLabel文本放置在JLabel的图标下方。 这应该都是通过简单的互联网搜索你的问题找到的,你的问题建议的东西在询问之前没有完成(应该是)

链接地址: http://www.djcxy.com/p/67665.html

上一篇: Text not displayed when mouse is rolled over JLabel

下一篇: Adding JLabel text over JLabel Icon. Using the same JLabel text