2012-02-11 15 views
-1

私はマウスのクリックイベントで表示画像を表示するために次のコードを使用します。次のコードを使用すると、画像のパスが表示されます。その特定の細胞?ファイルパスの表示jtableの画像の代わりに

private void jTable1MouseClicked(java.awt.event.MouseEvent evt) { 
URL url = getClass().getResource("image/Pointer.GIF"); 
ImageIcon testIcon = new ImageIcon(url); 
jTable1.setValueAt(testIcon, 0, 2); 
} 
+0

umpfth時間について:モデルが正しい列クラスを返していれば、JTableは完全にうまくアイコンを処理します。どのくらいの頻度で正確に同じ答えを求めて取得する予定ですか? – kleopatra

+1

downvoteは何度も何度も同じ質問をすることです... – kleopatra

答えて

1

独自の再利用コンポーネントを作成し、イベントを管理します。 ImageIconとそのパスをクラスにラップします。そのクラスのクリックハンドラを登録し、コンテナ内のコンポーネントを変更するときにクリックイベントを待ち受けます。 state変数も保持し、コンテナの内容を入れ替えます。 pathを表示するには、即時にJLabelを作成してコンテナに追加するか、コンポーネントの作成時にJLabelを作成することができます。

が可能なコンポーネントは、これは単なる出発点である。この

public class MyComponent extends JComponent { 
    private JLabel label; //This displays the path 
    private ImageIcon image; //This displays the image 

    //Create a container of your wish 

    //Attach a click handler to both the label and the image or the container 

    //OnClick swap the JComponent in your container and repaint()! 

    //Construct it like this: 
    MyComponent(String path) { 
     //Initialize JLabel with "text" as the path 
     //Load ImageIcon from the path 
    } 
} 

のように起動します。このアプローチは再利用可能なコンポーネントを作成するので、問題なくJLabel内に複数の「そのような」コンポーネントを持たせることができ、コードをきれいに保つことができます。

+0

'ClickHandler' ..' onClick'? J2SEにはそれがありますか? –

+0

私が意図したことは、コンポーネントがMouseListenerを実装し、 'click'イベントをリッスンすることです。それは単なる抽象的な説明だった。 –

+0

'ClickHandler'(クラス名を暗示する)を 'クリックハンドラ'(ユーザの入力が必要です..など)に編集できますか?それは、最新の編集と合わせて、有権者投票にふさわしいでしょう。 –

関連する問題