0

プログラムの問題に遭遇しました。

機能: JTableで行選択をリッスンし、「getSelectedRow」を使用してセルのコンテンツをフェッチします。

 public void valueChanged(ListSelectionEvent e) {   

    int row = resultTable.getSelectedRow();
    String val = resultTable.getValueAt(row,2).toString();

    System.out.println("The value of cell 2 at selected row is: " + val);

 }

上記の例に示されていないのは、JTableのセル2に画像へのローカルパスが含まれていることです。これらのパスは、ローカルで実行されているMySQLデータベースからフェッチされます。

実行したいこと: JTableのセル2に含まれているパスを使用して、valueChanged(上に表示)がトリガーされるたびに外部JFrameに画像を描画して表示したいと思います。

上記を考慮に入れて(そして私がこれでかなり新しいという事実)、この「val」をImageIO.readに渡すにはどうすればよいですか(別のクラスで実行されると思いますか?)

お時間をいただきありがとうございます、どんな助けもあります!

4

1 に答える 1

2

JPEG画像にはImageIOは本当に必要ありません。System.out.printlnの代わりにこれを追加するだけです。

JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JLabel label = new JLabel(new ImageIcon(val));
frame.setContentPane(label);
frame.pack();
frame.setVisible(true); 

valパラメータに有効なパスが含まれている場合、画像が表示されます。

画像が複数回開かれる場合は、ListSelectionEventのgetValueIsAdjusting()の値を確認してください

于 2012-05-23T13:21:02.210 に答える