Netbeans загружать данные в jtable

Я хочу сделать программу, в которой было возможно бы вводить покупку в компьютер, а именно, искать различные продукты из-за Ваш id, загружать один из-за одного в одном JTable как будто это был супер и перемещать продукты.

я оставляю мой код: Пока, единственное, что мне удалось сделать, состоит в том, чтобы показывать то, в чем я нуждаюсь, но переместив предстоящий продукт, удаляет меня в JTable тот, который уже был ранее, и остается вошедшим только новый, а именно, вместо того, чтобы добавлять, топчет контент.

Это мой код: DefaultTableModel смоделировал = new DefaultTableModel ();

public void MostrarDatosTabla(String d, DefaultTableModel modelo) {
    Connection cnn;

    try {
        cnn = Conexion.getConexion();
        Statement smt = cnn.createStatement();
        ResultSet rs = smt.executeQuery("select * from productos WHERE codigoProducto  LIKE '%" + d + "%'");
        boolean ccolumnas = false;
        if (!ccolumnas) {
            ccolumnas = true;
            ResultSetMetaData md = rs.getMetaData();
            int columnas = md.getColumnCount();
            for (int i = 1; i <= columnas; i++) {
                modelo.addColumn(md.getColumnLabel(i));
            }

        while (rs.next()) {
            Object[] fila = new Object[columnas];
            for (int i = 0; i < columnas; i++) {
                fila[i] = rs.getObject(i + 1);
            }
            modelo.addRow(fila);
            //   fila=null;
        }}
        tablaa.setModel(modelo);
        cnn.close();
    } catch (SQLException sqlex) {
        setTitle("Problema CargarDatos" + sqlex.getMessage());
    }
}
0
задан 22.03.2019, 14:12
1 ответ

Ты нуждаешься в том, чтобы создать модель вне mГ©todo, который ты показываешь:

В algГєn место твоей программы ты создаешь модель и это помещаешь в таблицу:

DefaultTableModel modelo = new DefaultTableModel();
tablaa.setModel(modelo);

mГ©todo, что будет наполнять таблицу, ты перемещаешь его модель для того, чтобы он обновил это тебе:

public void MostrarDatosTabla(String d, DefaultTableModel modelo) { ...

и в этом mГ©todo эти прощения долга кредитором lГ-neas для того, чтобы он вновь не инициализировал модель каждый раз:

DefaultTableModel modelo = new DefaultTableModel();
tablaa.setModel(modelo);

сейчас, когда каждый раз, когда ты призываешь mГ©todo estГЎs добавляя колонны. Чтобы не добавлять колонны каждый раз, если он состоит в том, что ты не знаешь с anticipaciГіn все колонны, ты потребуешь для модели, сможешь использовать какую-то глобальную переменную, например:

  var columnasDefinidas = false;

И в mГ©todo ты можешь cambiarГ-эксперт эта часть asГ-:

if (!columnasDefinidas) {
    columnasDefinidas = true;
    ResultSetMetaData md = rs.getMetaData();
    int columnas = md.getColumnCount();
    for (int i = 1; i <= columnas; i++) {
        modelo.addColumn(md.getColumnLabel(i));
    }
}
0
ответ дан 02.12.2019, 05:28
  • 1
    Он подал мне то, что ты сказал мне, но введя вторую линию, также он вводит мне другие 5 колонн больше, так последовательно., как я делаю для того, чтобы он не коснулся темы колонн, а именно, что остались установленными те, которые – Cuba Garcia 19.03.2019, 20:39
  • 2
    @CubaGarcia, уже edité мой ответ, чтобы осветлять эту точку. Не sé если ты это понял сейчас. – AlbertoLopez 21.03.2019, 03:29
  • 3
    Альберто, если уже он пробовал с чем-либо подобным, но продолжи добавлять колонны. – Cuba Garcia 21.03.2019, 22:15
  • 4
    ¿ ты можешь показывать có я говорю ново? – AlbertoLopez 21.03.2019, 22:39
  • 5
    Я заношу в список, обновите код наверху. – Cuba Garcia 22.03.2019, 14:13