2012-01-01 12 views
-2

私は簡単なスライドプログラムを書いています。このプログラムでは、新しいスライドショーのサムネイルを新しいjpanelに表示します。その新しいjpanelでは、2つのサムネイルをクリックした後、それらを交換する必要があります。しかし、それらをスワップした後、jpanelは爽やかではありません。 createAndShowGUI()関数を呼び出して新しいjpanelを作成してもOKですが、古いjpanelを閉じる必要があります。以下はJPanelをリフレッシュするか閉じると再び閉じる

私がクリックした場合、私の単純なクラス、

http://docs.oracle.com/javase/tutorial/uiswing/examples/layout/GridLayoutDemoProject/src/layout/GridLayoutDemo.java

そして、私のメインプログラムである「スライドソーターモード」ボタンハンドラは、次のコード

gridLayoutDemoObject.createAndShowGUI()をコンパイル。

解決策とは何ですか。どのように解決する必要がありますか?

ありがとうございました。

+0

画像を交換する方法のコードを投稿する必要があります。たぶんrefresh()を呼び出す必要があります。 –

+0

実際には私は画像を入れ替えていません。スライドと呼ばれるクラスがあり、各スライドオブジェクトには線の長方形の楕円などの異なる種類のオブジェクトがあります。したがって、jframeのactionlistenerには、それは私のメインプログラムで交換されます。スワップは正しいです、私は私のメイン画面で変更を見ることができるので、私はすべてのサムネイルを持っている新しい開いているウィンドウで変更を見ることはできません – CanCeylan

答えて

3

画像の表示方法やスワップ方法などを示す情報が不足しているため、適切な回答が得られませんでした。

JLabel(またはBorderなしのJButton)を使用してイメージを表示します。それでは、setIcon(...)を使ってアイコンを入れ替えると、ラベル自体が再描画されます。

次回はSSCCEと表示されていますので、あなたが話していることを推測する必要はありません。

+0

申し訳ありません、そうです、私はこの非常に似てコードhttp://docs.oracle.com/javase/tutorial/uiswing/examples/layout/GridLayoutDemoProject/src/layout/GridLayoutDemo.java – CanCeylan

+0

@CanCeylan:Camickrの良い提案(ImageIconを交換する)が問題を解決しましたか?そうなら、それを受け入れる。そうでない場合は、SSCCEとその特定の問題の詳細な説明を作成して投稿してください(少なくとも私は持っています)。 –

+0

@camickr、私は最初にすべてのボタンをarraylistに追加しました。次に、次のメソッドでスワップしました。 JButton dummy = butonlar.get(y); butonlar.set(y、butonlar.get(x)); butonlar.set(x、dummy); repaint(); は私の実際のプログラムで (butonlarは私のArrayListである)、スライドがスワップされているが – CanCeylan