Как ограничить добавление строк в JTable?

У меня есть несколько текстовых полей: JTable и Button (ADD).

Теперь каждый раз при нажатии кнопки он получает данные JTextFields и добавляет строку в JTable. И добавляет неограниченное количество строк. Я хочу добавить только строки 10.

public void setItemDetailInTable() {
    String free = freetext.getText();
    Object row[] = new Object[20];


    row[0] = itemcombo.getSelectedItem().toString();
    row[1] = mfgtext.getText();
    row[2] = sachsntext.getText();
    if (free.isEmpty()) {
        row[3] = qtytext.getText();
    } else {
        row[3] = qtytext.getText() + "+" + freetext.getText();
    }
    row[4] = pricetext.getText();
    row[5] = taxtext.getText() ;
    row[6] = discounttext.getText() ;
    row[7] = total.getText();

    model_table.addRow(row);
}

Обратите внимание на соглашение об именах Java. У вас есть переменная model_table. Имена переменных должны быть camelCase, то есть modelTable. Также постарайтесь сделать ваши типы как можно более конкретными. Если вы знаете, что row будет содержать только String, объявите его как String row[]. Это подводит меня к следующему вопросу .. Почему row имеет размер 20? Вы никогда не заполните все 20 мест в массиве ..?

Neuron 13.09.2018 16:30
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
134
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Просто добавить счетчик?

if (table.getRowCount < 10) {
     //doStuff...
} else {
    //doSomethingElse...
}

ну, это просто, что для этого требуется заявление о решении ... но что поместить в doStuff?

Karan Malhotra 13.09.2018 14:20
"а что ставить в doStuff?" Вы можете открыть диалоговое окно или изменить текст метки, чтобы сообщить пользователю, что таблица заполнена, а затем отключить текстовые поля и либо кнопку, либо ее Action. Попробуйте сделать это, а затем, если вы столкнетесь с проблемой, отправьте минимальный воспроизводимый пример.
Andrew Thompson 13.09.2018 15:18
Ответ принят как подходящий

хорошо, я понял..

if (table.getRowCount > 10){
    model_table.setRowCount(10)
}

А как насчет if (table.getRowCount) > 10) { return }?

Phreneticus 13.09.2018 14:30

что вернуть ..?

Karan Malhotra 13.09.2018 14:47

@KaranMalhotra, если тип возвращаемого метода - void, вы не можете просто return

Neuron 13.09.2018 16:26

@KaranMalhotra Поскольку ваш тип возврата недействителен, просто оставьте его на «return», тогда вы выскочите из функции и вернете управление вызывающей стороне.

Phreneticus 14.09.2018 09:31

Другие вопросы по теме