我是新来的,对编程也不太熟悉,所以如果我不直呼事物的真名,我很抱歉。
所以我正在使用一个jtable,我试图让这个表显示所有住在同一个地方的人(在我的数据库中,我有两个住在“champa”的人),而不是只显示第一个在他们的“location”atribute中说地点的人。这是我正在使用的代码,它只向我显示第一个符合要求的人,而不是向我显示所有符合要求的人:
private void cargarLocalidad() {
dtm.setRowCount(0);
HabitanteADO h_ado = new HabitanteADO();
Habitante habi = null;
String [] habitantes = new String[7];
String localidad = txtBuscar.getText().trim().toLowerCase();
if(localidad.length() == 0) {
ArrayList<Habitante> arregloHabitante = h_ado.readByAll();
for(Habitante h : arregloHabitante) {
habitantes[0] = h.getRut();
habitantes[1] = h.getNombre();
habitantes[2] = h.getGenero();
habitantes[3] = h.getFecha().toString();
habitantes[4] = h.getDireccion();
habitantes[5] = h.getLocalidad().toLowerCase();
habitantes[6] = String.valueOf(h.getVulnerabilidad());
dtm.addRow(habitantes);
txtBuscar.setText("");
txtBuscar.requestFocus();
}
} else {
habi = h_ado.readByLocalidad(localidad);
if(habi != null) {
habitantes[0] = habi.getRut();
habitantes[1] = habi.getNombre();
habitantes[2] = habi.getGenero();
habitantes[3] = habi.getFecha().toString();
habitantes[4] = habi.getDireccion();
habitantes[5] = habi.getLocalidad();
habitantes[6] = String.valueOf(habi.getVulnerabilidad());
dtm.addRow(habitantes);
txtBuscar.setText("");
txtBuscar.requestFocus();
} else
mensaje("La localidad que busca no existe!");
txtBuscar.setText("");
txtBuscar.requestFocus();
}
}
代码中位于else后面的部分只向我显示在文本字段中输入位置的第一个人。我需要它向我显示共享上述位置的所有人,因此如果我键入“champa”,我希望jtable能够加载我数据库中居住在那里的所有人,而不仅仅是第一个这样做的人。提前谢谢,这是我在这里的第一个职位,所以我很抱歉有任何错误!
1条答案
按热度按时间dgenwo3n1#
通过正确查询数据库中的信息,您应该能够在jtable中显示此信息,例如:
您还可以使用jtable的tablerowsorter类以及rowfilter.regexfilter()方法来过滤jtable的全部内容,以便只显示所需的记录,例如,下面有一个方法可以为您执行此操作(请阅读javadoc):