Java 鼠标在标签上滚动时不显示文本
对于NetBeans(Java),我在JLabel中遇到了问题。我已指定一个图像作为该JLabel的图标 问题1: 我想在图标(图像)下方显示一些文本(例如-注销)。如何做到这一点 问题2: 我想在鼠标滚动到JLabel上时显示一些文本。我该怎么办Java 鼠标在标签上滚动时不显示文本,java,swing,jlabel,Java,Swing,Jlabel,对于NetBeans(Java),我在JLabel中遇到了问题。我已指定一个图像作为该JLabel的图标 问题1: 我想在图标(图像)下方显示一些文本(例如-注销)。如何做到这一点 问题2: 我想在鼠标滚动到JLabel上时显示一些文本。我该怎么办 所以,请大家通过编写代码告诉我如何实现这些功能。我建议阅读基本的Oracle教程,其中详细介绍了如何实现这些功能。可以使用来确定鼠标何时滚动到JLabel上,并且可以通过设置其垂直文本位置(如中所述)将JLabel文本定位在JLabel图标下方。这一
所以,请大家通过编写代码告诉我如何实现这些功能。我建议阅读基本的Oracle教程,其中详细介绍了如何实现这些功能。可以使用来确定鼠标何时滚动到JLabel上,并且可以通过设置其垂直文本位置(如中所述)将JLabel文本定位在JLabel图标下方。这一切都应该通过简单的互联网搜索你的问题来发现,你的问题表明在提问之前没有做过(也应该做过)1。 创建一个包含两个
JLabel
s的JPanel
。这样可以控制内部构件的布局
我使用BoxLayout
和参数BoxLayout.Y_AXIS
获得图标下方的标签
2.
使用方法component.addMouseStener(新的MouseAdapter(){…})添加一个MouseStener
代码>,您需要创建一个
这是一个为你工作的例子,伙计。。。不管你需要怎样调整它
注意:您需要更改ImageIcon()
你试了什么?显示您的代码。为什么要使用MouseMotionListener
?为什么不干脆setToolTipText(“任何op想要的东西”)
取决于op想要什么。是的,工具提示将在JLabel顶部覆盖文本,但这不是最初的要求(“在图标下方显示文本”)。MouseMotionListener提供了灵活性,不仅可以更改JLabel文本,还可以以其他方式进行响应。如果有帮助,请记住将此标记为答案!谢谢:-)嗨,加里。我是论坛的新手。所以我不知道如何在答案旁边的勾形图片上做标记。比如:
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:\\Users\\Gary\\Google Drive\\Pictures\\puush\\ss (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);
}