私はJavaアプリケーションを使用してゲームを作成するとします。私はJPanelの画像を持つJLabelをいくつか持っており、これらのJLabelをJPanelから別のJPanelにリンクしたいと思います。それは可能ですか? Jlabelがクリックされたときと同様に、別のページが表示されます。JLabelから別のパネルへのリンクJPanel
ありがとうございます。
私はJavaアプリケーションを使用してゲームを作成するとします。私はJPanelの画像を持つJLabelをいくつか持っており、これらのJLabelをJPanelから別のJPanelにリンクしたいと思います。それは可能ですか? Jlabelがクリックされたときと同様に、別のページが表示されます。JLabelから別のパネルへのリンクJPanel
ありがとうございます。
MouseListener
を追加します。
mouseEntered()
で、リンクテキストの色を異なる色に設定して、ブラウザのようにハイライトします。mouseClicked()
で、CardLayout
のカードを変更して、他のコンポーネントを表示するか、その他のコンポーネントを表示します。スイングコンポーネントは単一の親を持つことしかできないため、共有することはできません。
ただし、ラベルのアイコンを別のSwingコンポーネントと共有することはできます。だからあなたのMouseListenerであなたがクリックしたラベルのgetIcon()
メソッドを使うことができます。次に、setIcon(...)
メソッドを使用する2番目のパネルに別のコンポーネントにアイコンを追加できます。
JLabelはシングルトンのようなクラスにすることで共有できます。あなたの異なったJPanelのクラスで
public class SharedJLabel {
private static JLabel imageLabel;
static {
//init the imageLabel here
}
public static JLabel getImageLabel() {
return imageLabel;
}
}
、あなただけの共有のJLabelを使用するには、このクラスを使用することができます:Cursor.HAND_CURSOR
にラベル用のカーソルを設定し
SharedJLabel.getSharedImageLabel();
「リンク」とはなんですか? – Paul