쿼리 용 클래스와 GUI 용 클래스가 있습니다. 그래서 내 GUI 클래스에서, 나는이 공공 회원이 :두 클래스를 사용하여 ResultSet의 jTable을 채울 수 없습니다.
model = (DefaultTableModel) table.getModel();
table = new JTable();
쿼리 클래스에 나는이 방법이 있지만 :
public void selectPassengers(int rows) {
PreparedStatement pst = null;
ResultSet rs = null;
String query = "SELECT * FROM brs.passenger";
try {
pst = con.prepareStatement(query);
rs = pst.executeQuery();
String[] attributes = new String[9];
GUI rg = new GUI();
while (rs.next()) {
attributes[0] = rs.getString(1);
attributes[1] = rs.getString(2);
attributes[2] = rs.getString(3);
rg.model.insertRow(rg.table.getRowCount(), new Object[] {
attributes[0], attributes[1], attributes[2]});
}
} catch (Exception e) {
e.printStackTrace();
}
}
그것은 삽입하거나 예외를 발생하지 것입니다. 그것은 단지 아무것도하지 않습니다. while-loop
내에서 콘솔로 인쇄를 시도 했음에도 불구하고 적절한 데이터를 인쇄합니다. 데이터베이스와 연결이 정상입니다.
쿼리를 실행 한 후 GUI 클래스에서해야합니까?
바로 가기는 정상입니다. 나는 가장 쉬운 방법을 찾고있다.
정보 주셔서 감사합니다. 그래도 작동하지 않았다. DefaultTableModel (..)에 대한 매개 변수로 행 및 열의 수를 지정하려고했습니다. 아무것도 바뀌지 않습니다. 내 삽입 코드가 맞습니까? –
데이터베이스 로직에 새 GUI를 만드는 이유는 무엇입니까? 1) 프레임을 생성하고, 2) JTable을 생성해야합니다. JScrollPane에 테이블을 추가해, 스크롤 구획을 프레임에 추가합니다. 삼). 그런 다음 테이블 행에 데이터 행을 삽입하는 메소드가 있습니다. 먼저 하드 코딩 된 데이터로이 로직을 작동 시키십시오. 그래야만 데이터베이스 코드에 대해 걱정할 것입니다. – camickr
또한 왜 9 개의 항목이있는 배열을 만든 다음 배열에 3 개의 항목 만 추가할까요? 그렇다면 두 번째 배열을 만들어 모델에 데이터를 추가하는 이유는 무엇입니까? insertRow() 메서드를 사용할 필요가 없습니다. addRow (...) 메소드를 사용하면 자동으로 행이 데이터베이스의 끝에 추가됩니다. 하드 코딩 된 데이터를 테이블에로드하는 첫 번째 단계에서 도움이 더 필요하면 문제를 나타내는 적절한 [mcve]를 게시하십시오. 먼저 논리적으로 만들기 위해 코드를 재구성해야합니다. – camickr