行が選択されているときにJTableの「特定の列」からデータを表示するにはどうすればよいですか(table.getvalue(table.getValueAt(table.getSelectedRow()、「特定の列」))テキストエリアに.作成するリスナーはありますか?この作業は、すべての選択でテキストエリアを更新し、行が選択されている特定の列の値を取得する必要があることを意味します。
質問する
3015 次
1 に答える
0
a をテーブルに追加MouseListener
します。ユーザーがセルを選択するたびに、データを取得してテキストを に設定しますTextField
。次のコードを実行すると、デモを見ることができます。
private void createUI() {
JFrame frame = new JFrame();
frame.setLayout(new BorderLayout());
Object[][] data = {{"a", "b"}, {"c", "d"}, {"e", "f"}};
Object[] columnNames = {"Col-1", "Col-2"};
final JTable table = new JTable(data, columnNames);
JPanel btnPnl = new JPanel(new FlowLayout(FlowLayout.LEFT));
btnPnl.add(new JLabel("Selected Value: "));
final JTextField text = new JTextField(10);
btnPnl.add(text);
table.getTableHeader().setReorderingAllowed(false);
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if(table.getSelectedRow() != -1 && table.getSelectedColumn() != -1) {
String selData = table.getValueAt(table.getSelectedRow(), table.getSelectedColumn()).toString();
text.setText(selData);
}
}
});
frame.add(table.getTableHeader(), BorderLayout.NORTH);
frame.add(table, BorderLayout.CENTER);
frame.add(btnPnl, BorderLayout.SOUTH);
frame.setTitle("Table to TextField Example.");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
于 2013-07-05T12:06:58.000 に答える