Как отобразить результат поиска в jtable? - PullRequest
0 голосов
/ 20 ноября 2010

Я использую NetBeans IDE.Мне нравится проверять, как canni на самом деле выполняет поиск из jtable, который сопоставлен с таблицей с использованием привязки netbeans.Я хочу обновить jtable, показывая записи, которые соответствуют моим критериям поиска

Ответы [ 3 ]

0 голосов
/ 16 июля 2015

Сначала я получаю имена полей в окне Jcombo.

private void Text1KeyReleased(java.awt.event.KeyEvent evt) {                                  

        JTetclear();
        Connection con = null;
        Statement stmt = null;

 try {

        con = javaconnect.MySqlServer();
        stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM `" + Combo1.getSelectedItem() + "` where `" +  Combo2.getItemAt(0).toString() + "` Like '%" + Text1.getText() + "%' or `" +  Combo2.getItemAt(1).toString() + "` Like '%" + Text1.getText() + "%' or `" +  Combo2.getItemAt(2).toString() + "` Like '%" + Text1.getText() + "%' or `" +  Combo2.getItemAt(0).toString() + "` Like '%" + Text1.getText() + "%' order by PARTNO;");
        ResultSetMetaData md = rs.getMetaData();
        DefaultTableModel tm = (DefaultTableModel) Table1.getModel(); // for changing column and row model
        Combo2.removeAllItems();
        tm.setColumnCount(0); tm.setRowCount(0); // clear existing columns and clear existing rows     
            for (int i = 1; i <= md.getColumnCount(); i++) {
                tm.addColumn(md.getColumnName(i));
                Combo2.addItem(md.getColumnName(i));//l load the column name in the combobox 
    }
        tm.setRowCount(0);  // clear existing rows     
            while (rs.next()) {      //  Get row data
                Vector row = new Vector(md.getColumnCount());
                for (int i = 1; i <= md.getColumnCount(); i++) {
                    row.addElement(rs.getObject(i));
    }
        tm.addRow(row);
        Table1.getColumnModel().getColumn(0).setPreferredWidth(160);
        Table1.getColumnModel().getColumn(1).setPreferredWidth(380);
    }
        rs.close();
        stmt.close();
    }   catch (Exception ex) { 
        JOptionPane.showMessageDialog(this, ex, ex.getMessage(), WIDTH, null);
    }
    }   
0 голосов
/ 12 января 2017

Вот как я это сделал. Не эксперт.

Метод, который возвращает набор результатов:

public ResultSet actualInventoryInCencos(int idCencos) throws SQLException {

    try {
        SQL sql = new SQL();
        PreparedStatement selectPS = sql.createPStatement(cf.SELECT_INVENTORY_BY_CENCOS);
        selectPS.setInt(1, idCencos);
        ResultSet resultSet = selectPS.executeQuery();
        return resultSet;
    } catch (SQLException | NullPointerException e) {
        System.out.println(cf.ERROR_SQL + e);
        cf.e(1);
        return null;
    }

}

Метод в TableDAO, который принимает набор результатов и создает и возвращает DefaultTableModel со всеми данными запроса.

public DefaultTableModel createTable(ResultSet rs) throws SQLException {

    ResultSetMetaData metaData = rs.getMetaData();
    int columnCount = metaData.getColumnCount();

    //ColumnsNames
    Vector<String> columnsNames = new Vector<>();
    columnsNames.add("Column1");
    columnsNames.add("Column2");
    columnsNames.add("Column3");

    Vector<Vector<Object>> tableData = new Vector<>();

    while (rs.next()) {
        Vector<Object> vector = new Vector<>();
        for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
            vector.add(rs.getObject(columnIndex));
        }
        tableData.add(vector);
    }

    return new DefaultTableModel(tableData, columnsNames);
}

И строка для установки новой модели на JTable:

yourJTable.setModel(tableDAO.createTable(inventory.actualInventoryInCencos(userData.getUserId())));
0 голосов
/ 20 ноября 2010
DefaultTableModel model = new DefaultTableModel( results from your search );
table.setModel( model );

Редактировать: см. Таблица из базы данных .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...