我有一个名为employeeRecords
的Java程序,我用它在SQL Server数据库中执行CRUD操作。
我有另一个名为Table
的程序,它是一个jTable程序。我需要在我的jTable中显示employeeRecords
值。我知道如何在textField中显示记录,但不知道如何在jTable列中显示记录。
如果重要的是我使用Eclipse Mars。
答案 0 :(得分:1)
首先看一下How to Use Tables
答案非常复杂,取决于你想要达到的目标。
我建议首先创建一个简单的POJO来保存数据库中的数据,就个人而言,这使得管理变得更加容易......
public class Employee {
// Fields, getters and setters
}
接下来,您需要TableModel
来管理Employee
的所有实例......
public class EmployeeTableModel extends AbstractTableModel {
private List<Employee> employees;
public EmployeeTableModel(List<Employee> employees) {
this.employees = new ArrayList<>(employees);
}
@Override
public int getRowCount() {
return employees.size();
}
@Override
public int getColumnCount() {
return how ever many fields you want to display;
}
@Override
public String getColumnName(int column) {
String name = "??";
switch (column) {
case 0:
name = "What every this column represents"
break;
.
.
.
}
return name;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Employee employee = employees.get(rowIndex);
Object value = null;
switch (columnIndex) {
case 0:
value = employee.getXxx();
break;
.
.
.
}
return value;
}
}
就个人而言,我发现每个POJO都有一个自定义表格更容易,因为它允许您更轻松地管理各个行/对象,但那就是我
接下来,您需要从数据库加载数据并填充表模型...
public EmployeeTableModel getEmployeeTableModel() throws SQLException {
Connection con = ...;
EmployeeTableModel model = null;
try (PreparedStatement stmt = con.prepareStatement("select * from employeRecords")) {
try (ResultSet rs = stmt.executeQuery()) {
List<Employee> employees = new ArrayList<>(25);
while (rs.next()) {
Employee employee = new Employee();
employee.setXxx(rs.getString("Xxx"));
//...
}
model = new EmployeeTableModel(employees);
}
}
return model;
}
最后,您需要将模型应用于JTableModel
public class SomeUIClass extends JPanel {
//...
private JTable table;
//...
public void someMethodYouNeedToCallWhenYouWantToReloadTheModel() {
try {
table.setModel(getEmployeeTableModel());
} catch (SQLException ex) {
ex.printStackTrace();
}
}
答案 1 :(得分:0)
我不知道您是否知道如何访问数据库等,但是要将数据打印到JTable使用此构造函数。
JTable(Vector rowData, Vector columnNames)
Constructs a JTable to display the values in the Vector of Vectors, rowData, with column names, columnNames.
请记住rowData参数是Vector of Vector,其中0位是标题下的第一行等。
如果这不能回答你的问题,请更具体一点,我会看到我可以帮助你的事情