У меня есть несколько текстовых полей: JTable
и Button
(ADD).
Теперь каждый раз при нажатии кнопки он получает данные JTextField
s и добавляет строку в 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);
}
Просто добавить счетчик?
if (table.getRowCount < 10) {
//doStuff...
} else {
//doSomethingElse...
}
ну, это просто, что для этого требуется заявление о решении ... но что поместить в doStuff?
Action
. Попробуйте сделать это, а затем, если вы столкнетесь с проблемой, отправьте минимальный воспроизводимый пример.
хорошо, я понял..
if (table.getRowCount > 10){
model_table.setRowCount(10)
}
А как насчет if (table.getRowCount) > 10) { return }
?
что вернуть ..?
@KaranMalhotra, если тип возвращаемого метода - void
, вы не можете просто return
@KaranMalhotra Поскольку ваш тип возврата недействителен, просто оставьте его на «return», тогда вы выскочите из функции и вернете управление вызывающей стороне.
Обратите внимание на соглашение об именах Java. У вас есть переменная
model_table
. Имена переменных должны быть camelCase, то естьmodelTable
. Также постарайтесь сделать ваши типы как можно более конкретными. Если вы знаете, чтоrow
будет содержать толькоString
, объявите его какString row[]
. Это подводит меня к следующему вопросу .. Почемуrow
имеет размер 20? Вы никогда не заполните все 20 мест в массиве ..?