0
我有一個JTable列出了從SQL查詢返回的客戶信息。如何設置表格,以便用戶可以選擇一行,或者雙擊或勾選複選框,然後使用所選客戶名稱填充JTextField?(Java)用戶選擇JTable行
我有一個JTable列出了從SQL查詢返回的客戶信息。如何設置表格,以便用戶可以選擇一行,或者雙擊或勾選複選框,然後使用所選客戶名稱填充JTextField?(Java)用戶選擇JTable行
嘗試閱讀關於如何使用JTable的Java Swing教程。基本上,你寫一個監聽器用於行選擇:
下面示例代碼去FWD
public class PersonTable {
JTable table;
public PersonTable() {
final MyTableModel myTableModel = new MyTableModel();
myTableModel.fill();
table = new JTable(myTableModel);
JFrame frame = new JFrame("Persons");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel panel = new JPanel();
JPanel panel1 = new JPanel();
final JTextField t1 = new JTextField(10);
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
int selectedRow = table.getSelectedRow();
Object valueAt = myTableModel.getValueAt(selectedRow, 0);
t1.setText((String) valueAt);
}
});
panel1.add(new JLabel("Name"), BorderLayout.EAST);
panel1.add(t1, BorderLayout.WEST);
panel.add(new JScrollPane(table), BorderLayout.NORTH);
panel.add(panel1, BorderLayout.SOUTH);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
public class MyTableModel extends AbstractTableModel {
String[] columnName = new String[]{"Customer Name", "Phone Number", "Area"};
String[][] valueA = null;
public void fill() {
valueA = new String[3][columnName.length];
for (int i = 0; i < 3; i++) {
valueA[i][0] = "Name" + i;
valueA[i][1] = "989481125" + i;
valueA[i][2] = "Area No" + i;
}
}
@Override
public int getRowCount() {
return valueA.length;
}
@Override
public String getColumnName(int column) {
return columnName[column];
}
@Override
public int getColumnCount() {
return columnName.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return valueA[rowIndex][columnIndex];
}
}
public static void main(String[] args) {
new PersonTable();
}
}
錯了,對不起,我錯了。我想說他會寫一個聽衆。 – andreih
+1鏈接不錯 – vels4j