【发布时间】:2025-11-22 06:45:01
【问题描述】:
我有一个带有图片的大 JLabel,我希望用户在其上输入鼠标后立即失去它的图像和其他小图片出现在其中,彼此靠近。就像一棵家谱,主图像是一棵树,当鼠标输入时,小人物的小图片并排出现,如下图所示。我用:
JLabel c = new JLabel();
c.setBorder(new EtchedBorder(EtchedBorder.RAISED));
c.setIcon(new ImageIcon("C:\\Users\\Lud\\Desktop\\family\\tree.png"));
c.setBackground(new Color(192, 192, 192));
c.setOpaque(true);
c.setBounds(5, 5, 256, 256);
c.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent me) {
c.setIcon(null);
JLabel c1 = new JLabel();
c1.setIcon(new ImageIcon("C:\\Users\\Lud\\Desktop\\family\\george.png"));
c1.setBounds(10, 10, 32, 32);
add(c1);
}
public void mouseExited(MouseEvent me) {
}
});
add(c);
主要的 JLabel/树图像看起来很好,但是当我在它上面输入鼠标时,它只是丢失了它的图片,而没有在它上面显示新的图片。我做错了什么?谢谢
【问题讨论】:
-
我同意 HovercraftFullOfEels 但如果你仍然想按照你的方式做,你可以添加“c.setVisible(false);”而不是“c.setIcon(null);”在创建新标签之前。 "JLabel c1 = 新的 JLabel();"
-
新的jlabel仍然不可见:|
-
您是否尝试添加'c1.setVisible(true);'在 JLabel c1 = new JLabel() 之后; c1.setIcon(new ImageIcon("C:\\Users\\Lud\\Desktop\\family\\george.png")); c1.setBounds(10, 10, 32, 32);
-
是的,我在添加之前将其设置为可见。现在工作正常,虽然我需要按照这里的建议修改我的代码。感谢您的帮助
-
不客气。能帮到你就好了。