我想用java app创建一个游戏。我在JPanel中有一些带有图像的JLabel,我想将这些JLabel从JPanel链接到不同的JPanel。有可能这样做吗?与单击Jlabel时一样,将出现另一个页面。
提前致谢。
答案 0 :(得分:2)
无法共享Swing组件,因为它们只能有一个父组件。
但是,您可以与另一个Swing组件共享标签的图标。因此,在MouseListener中,您可以使用所单击标签的getIcon()
方法。然后,您可以使用setIcon(...)
方法将图标添加到另一个组件是第二个面板。
答案 1 :(得分:2)
Cursor.HAND_CURSOR
。MouseListener
。
mouseEntered()
上,将链接文字的颜色设置为其他颜色以突出显示它(就像浏览器一样)。mouseClicked()
上,更改CardLayout
中的卡片以显示其他组件,或以其他方式显示其他组件。答案 2 :(得分:0)
你必须更加具体。您需要包含诸如您正在使用的技术之类的内容。这是一个基于Web的项目吗?它是一个独立的应用程序吗?具体你要做什么。而“链接”具有太广泛的含义。这可能意味着很多不同的事情。为了得到适当的帮助,你必须更加具体。
答案 3 :(得分:0)
你可以通过使它成为像类一样的单独来共享JLabel。
public class SharedJLabel {
private static JLabel imageLabel;
static {
//init the imageLabel here
}
public static JLabel getImageLabel() {
return imageLabel;
}
}
在不同的JPanel类中,您可以使用此类来使用共享的JLabel:
SharedJLabel.getSharedImageLabel();