2011-12-31 3 views
0

私はJavaアプリケーションを使用してゲームを作成するとします。私はJPanelの画像を持つJLabelをいくつか持っており、これらのJLabelをJPanelから別のJPanelにリンクしたいと思います。それは可能ですか? Jlabelがクリックされたときと同様に、別のページが表示されます。JLabelから別のパネルへのリンクJPanel

ありがとうございます。

+4

「リンク」とはなんですか? – Paul

答えて

2
  • 各ラベルにMouseListenerを追加します。
    • mouseEntered()で、リンクテキストの色を異なる色に設定して、ブラウザのようにハイライトします。
    • mouseClicked()で、CardLayoutのカードを変更して、他のコンポーネントを表示するか、その他のコンポーネントを表示します。
2

スイングコンポーネントは単一の親を持つことしかできないため、共有することはできません。

ただし、ラベルのアイコンを別のSwingコンポーネントと共有することはできます。だからあなたのMouseListenerであなたがクリックしたラベルのgetIcon()メソッドを使うことができます。次に、setIcon(...)メソッドを使用する2番目のパネルに別のコンポーネントにアイコンを追加できます。

0

より具体的にする必要があります。あなたは、あなたが使っている技術のようなものを含める必要があります。これはWebベースのプロジェクトですか?それは独立したアプリケーションですか?そして具体的に何をしようとしているのですか?そして、「リンク」は意味がありません。それはいろいろなことを意味するかもしれません。適切な助けを得るためには、より具体的にする必要があります。

+0

あなたの答えは答えではありません。それはコメントです。 – Paul

+0

評判が50未満の@Paulユーザーはどこにでもコメントを投稿できません – mKorbel

+0

ああ、ありがとう@mKorbel – Paul

0

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(); 
関連する問題