Я пытаюсь использовать ListTableModel и пытался следовать некоторым примерам в Интернете, но мне все еще трудно показывать данные 'resultSet' в моей Jtable.Я использую метод model-view-controller для создания приложения с графическим интерфейсом в NetBeans.Все мои компоненты GUI размещены в представлениях, и контроллер обрабатывает любые обновления, а также видимость этого представления.Класс модели имеет все запросы и отвечает за прямой доступ к базе данных с использованием JDBC.
«Jtable» «searchTable» создается и инициализируется внутри класса представления и доступен для моего контроллера через метод (getSearchTable ()).
public JTable getSearchTable(){
// view class
return searchTable;
}
У меня есть "ListTableModel", созданная внутри класса контроллера и следующая за учебником Camick.
private Product_View productView;
private Product_Model productModel;
private Product product;
public Product_Controller(Product_Model model, Product_View view){
this.productModel = model;
this.productView = view;
view.addSaveListener(new SaveListener());
view.addCloseListener(new CloseListener());
view.addSearchSingleListener(new SearchListener());
}
public void displayProductView(){
this.productView.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.productView.setVisible(true);
} class SearchListener implements ActionListener {
public SearchListener() {
}
@Override
public void actionPerformed(ActionEvent ae) {
ListTableModel model = null;
String prodName = productView.getProductName();
JTable tempTable = productView.getSearchTable();
model = productModel.getProduct(prodName, model);
tempTable = new JTable(model);
}
}
Наконец, метод "getProduct" находится внутри моделиclass и вызывается моим классом контроллера.
public ListTableModel getProduct(String productName, ListTableModel model){
String query = "SELECT * FROM Products WHERE name='" + productName + "';";
Statement stmt;
try {
stmt = this.conn.createStatement();
stmt.executeQuery (query);
ResultSet rs = stmt.getResultSet();
writeResultSet(rs);
model = ListTableModel.createModelFromResultSet(rs);
rs.close ();
stmt.close ();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return model;
}
Jtable ничего не возвращает, как я могу просмотреть мои данные ResultSet (я распечатал значения, возвращаемые "writeResultSet" на консоль, и такзапрос работает правильно?