powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Добавление строк в JTable
6 сообщений из 6, страница 1 из 1
Добавление строк в JTable
    #39356805
progjar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть модель таблицы

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
public abstract class table  extends AbstractTableModel {
 private int columnCount = 4;
 private ArrayList<String[]> dataArrayList;
 
    public table () {
    dataArrayList = new ArrayList<String[]> ();
    for (int i=0; i<dataArrayList.size();i++) {
        dataArrayList.add(new String[getColumnCount()]);
     }
    }
 
 
@Override
    public int getRowCount() {
       return dataArrayList.size();
    }
    
    @Override
    public String getColumnName(int columnIndex){
        switch(columnIndex) {
            case 0: return "1";
            case 1: return "2";
            case 2: return "3";
            case 3: return "4";
        }
        return "";
    }
 
    @Override
    public int getColumnCount() {
        return columnCount;
    }
    
     @Override
    public java.lang.Object getValueAt(int rowIndex, int columnIndex) {
       String [] rows = dataArrayList.get(rowIndex);   
        return  rows [columnIndex];
    }
    public void addDate(String[] row){
        String [] rowTable = new String[getColumnCount()];
        rowTable = row;
        dataArrayList.add(rowTable);
        
    }
}



Не могу понять как сделать в основном классе добавление строки в JTable по нажатию кнопки ?
...
Рейтинг: 0 / 0
Добавление строк в JTable
    #39356810
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое "основной класс"?
Почему класс называется table, с маленькой буквы, хотя это TableModel? table это название для переменной типа JTable.
Добавление в таблицу у вас уже реализовано в виде
Код: java
1.
  dataArrayList.add(rowTable);


где rowTable стоило бы назвать tableRow.

Для того чтобы
авторсделать в основном классе добавление строки в JTable по нажатию кнопки
нужно сделать кнопку, навесить на неё обработку события через Action или ActionListener и вызвать метод добавления строки в dataArrayList. Кстати, date, это "дата", а не "данные".

Так как у вас всё уже реализовано, то ваш вопрос должен был звучать как
"я добавляю данные в tableModel, но они не отображаются в таблице".

А чтобы ответить на этот вопрос, достаточно открыть класс AbstractTableModel и посмотреть на методы fireЧегоНибудь()
...
Рейтинг: 0 / 0
Добавление строк в JTable
    #39356997
progjar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Надо это записать в Action кнопки ?
Код: java
1.
2.
3.
4.
5.
6.
public void addDate(String[] row){
        String [] rowTable = new String[getColumnCount()];
        rowTable = row;
        dataArrayList.add(rowTable);
        
    }
...
Рейтинг: 0 / 0
Добавление строк в JTable
    #39357475
ruzja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
progjarBlazkowicz,
Надо это записать в Action кнопки ?
Код: java
1.
2.
3.
4.
5.
6.
public void addDate(String[] row){
        String [] rowTable = new String[getColumnCount()];
        rowTable = row;
        dataArrayList.add(rowTable);
        
    }



Нет. В методе идет добавление записи в модель. А представление ничего об этом не знает, поэтому не перерисовывет.
Для этого необходимо в конец метода добавить вызов метода fireTableRowsInserted(int firstRow, int lastRow).
https://docs.oracle.com/javase/7/docs/api/javax/swing/table/AbstractTableModel.html#fireTableRowsInserted(int, int)
...
Рейтинг: 0 / 0
Добавление строк в JTable
    #39365223
progjar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно просто кодом помочь

Код: java
1.
2.
3.
4.
5.
6.
  JButton bt = new JButton ("Добавить");
bt.addActionListener(new  ActionListener(){
            @Override
            public void actionPerformed(ActionEvent event) {
//Что тут должно быть ?
}
...
Рейтинг: 0 / 0
Добавление строк в JTable
    #39365531
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
progjarМожно просто кодом помочь, бездельнику?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
JButton btn = new JButton ("Добавить");
btn.addActionListener(new  ActionListener(){
            @Override
            public void actionPerformed(ActionEvent event) {
                MyTableModel model = (MyTableModel)myTable.getModel();
                model.addRow("Cell 1", 'Cell 2", "Cell 3");
            }
}

class MyTableModel extends AbstractTableModel {

    public void addRow(String ... row) {
        int rowNum = dataArrayList.size();
        dataArrayList.add(row);
        fireTableRowsInserted(rowNum, rowNum)
    }
}
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Добавление строк в JTable
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]