Java 鼠标悬停在jlable上时显示图片的面板

Java 鼠标悬停在jlable上时显示图片的面板,java,swing,user-interface,jpanel,jlabel,Java,Swing,User Interface,Jpanel,Jlabel,我想让jpanel1不可见,直到其中一个JLabel被鼠标移过。然后,JPanel1必须变得可见,并且JLable(称为jLabel1)必须将其图像设置为鼠标悬停的JLabel之一 public GUI() { initComponents(); jPanel1.setVisible(false); for(int i =4; i<12;i++) { JLabel l = new JLabel(); l.setIco

我想让jpanel1不可见,直到其中一个JLabel被鼠标移过。然后,JPanel1必须变得可见,并且JLable(称为jLabel1)必须将其图像设置为鼠标悬停的JLabel之一

public GUI() 
{

    initComponents();
    jPanel1.setVisible(false);



    for(int i =4; i<12;i++)
    {
        JLabel l = new JLabel();
        l.setIcon(new ImageIcon(i+".jpg"));
        p1.add(l);
    }
    for(int i =12; i<20;i++)
    {
        JLabel l = new JLabel();
        l.setIcon(new ImageIcon(i+".jpg"));
        p2.add(l);
    }
}
publicgui()
{
初始化组件();
jPanel1.setVisible(false);

对于(int i=4;i我认为您有一个由缩略图组成的网格图像图标保存在一个由JLabel组成的网格中,并且您希望在网格左侧显示一个较大的缩略图图像。如果是这样:

  • 我不会让一个JPanel出现和消失
  • 取而代之的是一个坐在左边的JPanel
  • 给你的JLabels MouseMotionListeners
  • 当鼠标输入标签时,让侦听器获得相应的大图像图标,即与缩略图相对应的图标,并让左侧的大JLabel通过
    设置图标(…)
    显示它

编辑
您在评论中声明:


我知道这是如何工作的,尽管我不知道如何获取适当的图像图标,因为右侧当前具有图片的所有JLabel都命名为相同的名称(从我的for循环)。我如何获取单个JLabel信息(在本例中为该JLabel的ImageIcon)


请理解变量名并不那么重要,重要的是对象引用。一种可能的解决方案是创建一个映射,例如
哈希映射
。如果这样做,您可以将每个小缩略图图像图标与其大图像图标关联。然后在MouseMotionListener中,获取鼠标通过
(JLabel)getSource()
进入,通过
getIcon()
获取其缩略图图标,如果不为空(请检查!)使用你的地图来获得与缩略图相关的更大的图标。

我不认为你发布的代码和文本足以让我们了解你的问题,足以回答它。如果你没有得到一个像样的答案很快,考虑创建和张贴。也考虑张贴图像(或链接到我们可以插入的图像)。这显示了你正在尝试做什么。我想添加照片,但我的帐户声誉不允许我在帖子中添加。是否有其他方法添加图像?有人正在编辑你的问题,以便图像显示。1+感谢您的努力。我知道这将如何工作,尽管我不知道如何获得适当的图像图标because右侧所有当前有图片的JLabel都被命名为相同的名称(来自我的for循环)。我如何获得单独的JLabel信息(在本例中为该JLabel的ImageIcon。@d00by:请参见编辑以回答。我不熟悉地图或哈希地图,您能给我一个示例,说明它在我的代码中的外观吗?非常感谢!@d00by:可以通过Google轻松找到许多哈希地图教程,我建议您看一两个。