Text not displayed when mouse is rolled over JLabel

With NetBeans (Java), I am having problems in JLabel. I have assigned an image as the icon of that JLabel.

Problem - 1st:

I want to display some text (eg - logout) below that icon (image). How to do this?

Problem - 2nd:

I want to display some text when mouse is rolled over that JLabel. What should I do?

So , please guys tell me how to these things by writing code.


1.

Create a JPanel that contains two JLabel s. This way you can control the layout of the internal components.

I used BoxLayout with the parameter BoxLayout.Y_AXIS to get the label below the icon.

2.

Add a MouseListener using the method component.addMouseListener(new MouseAdapter() { ... }); , you'll need to create a MouseAdapter and implement any methods you need (click here).

Here is a working example for you buddy... Adapt this however you need to.

Note: You'll need to change the file-path of the ImageIcon()

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);
}

I recommend reading the basic Oracle tutorials which describe in detail how to accomplish this. You can use a MouseMotionListener to determine when the mouse is rolled over the JLabel, and you can position the JLabel text underneath the Icon of the JLabel by setting its vertical text position as described in the JLabel Tutorial. This should have all been found with a simple internet search of your questions, something that your question suggests was not done (and should have been) before asking

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

上一篇: 是否可以包含基于组件属性的文件(链接)?

下一篇: 鼠标滚过JLabel时不显示文本