Я хочу удалить некоторые строки из JTable. Как мне это сделать?Как удалить строку из JTable?
ответ
JTable обычно формирует часть представления реализации MVC. Вы захотите удалить строки из своей модели. JTable, который должен прослушивать эти изменения, будет обновляться, чтобы отразить это удаление. Следовательно, вы не найдете removeRow() или аналогичный метод JTable.
thanx для справки, но я хочу знать, как удалить строки из модель таблицы, im не получая никакого метода. – 2009-07-13 06:18:20
Прочитайте такие вещи, как: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html – dave
Вкратце, вы создаете пользовательскую таблицуModel. JTable не сохраняет строки, он делегирует это в TableModel. Вы можете подклассом из AbstractTableModel, если хотите. Вызывайте fireTableRowsDeleted() каждый раз, когда вы удаляете строки. – dave
Посмотрите на DefaultTableModel для простой модели, которые вы можете использовать:
http://java.sun.com/javase/6/docs/api/javax/swing/table/DefaultTableModel.html
Это расширяет AbstractTableModel, но должно быть достаточно для основных целей. Вы всегда можете расширить AbstractTableModel и создать свой собственный. Убедитесь, что вы установили его также в JTable.
http://java.sun.com/javase/6/docs/api/javax/swing/table/AbstractTableModel.html
Посмотрите на основной Sun учебник для получения дополнительной информации об использовании JTable с табличной модели:
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#data
Для того, чтобы удалить строки из JTable, вам нужно удалить целевой строки из базового TableModel. Если, например, ваш TableModel является экземпляром DefaultTableModel, вы можете удалить строку, выполнив следующие действия:
((DefaultTableModel)myJTable.getModel()).removeRow(rowToRemove);
thanx для справки, но я использовал этот метод, и он не работает. на самом деле мой JTable использует модель LocationTable model (own created) extendind abstract, поэтому, когда я использую метод removeRow (i), она дает ошибку как «can not resolve removeRow()». Какую альтернативу я должен использовать. – 2009-07-13 08:50:36
Хорошо, если вы созданный собственный пользовательский TableModel, тогда вы несете ответственность за создание собственного метода removeRow. Посмотрите исходный код модели DefaultTableModel, чтобы узнать, как это делается. Простое решение - использовать DefaultTableModel. Почему, по-вашему, вам нужно создать пользовательский TableModel? Пока вы не поймете, что основы использования моделей используют предоставленные по умолчанию. – camickr
Правильный способ применить фильтр к JTable через интерфейс RowFilter добавлен к TableRowSorter. Используя этот интерфейс, представление модели можно изменить без изменения базовой модели. Эта стратегия сохраняет парадигму Model-View-Controller, тогда как удаление строк, которые вы хотите скрывать от самой модели, нарушает парадигму, смешивая ваше разделение проблем.
Если вам нужно простое рабочее решение, попробуйте использовать DefaultTableModel.
Если вы создали свою собственную модель таблицы, которая расширяет AbstractTableModel, то вы также должны реализовать метод removeRow(). Точная реализация зависит от базовой структуры, которую вы использовали для хранения данных.
Например, если вы использовали вектор, то это может быть что-то вроде этого:
public class SimpleTableModel extends AbstractTableModel {
private Vector<String> columnNames = new Vector<String>();
// Each value in the vector is a row; String[] - row data;
private Vector<String[]> data = new Vector<String[]>();
...
public String getValueAt(int row, int col) {
return data.get(row)[col];
}
...
public void removeRow(int row) {
data.removeElementAt(row);
}
}
Если вы использовали список, то это было бы очень похожи друг на друга:
// Each item in the list is a row; String[] - row data;
List<String[]> arr = new ArrayList<String[]>();
public void removeRow(int row) {
data.remove(row);
}
HashMap :
//Integer - row number; String[] - row data;
HashMap<Integer, String[]> data = new HashMap<Integer, String[]>();
public void removeRow(Integer row) {
data.remove(row);
}
И если вы используете массивы как этот
String[][] data = { { "a", "b" }, { "c", "d" } };
то вам не повезло, потому что нет возможности динамически удалять элементы из массивов. Вы можете попытаться использовать массивы, отдельно сохраняя некоторые флажки, уведомляющие, какие строки удалены, а какие нет или каким-то другим коварным способом, но я бы посоветовал против этого ... Это привело бы к ненужной сложности и на самом деле было бы просто решая проблему, создавая еще один. Это верный способ закончить here. Попробуйте один из приведенных выше способов хранения данных таблицы.
Для лучшего понимания того, как это работает, и что делать, чтобы сделать вашу собственную модель работать должным образом, я сильно советую вам обратиться к Java Tutorial, DefaultTableModel API и это source code.
ммм очень простые парни
for(int i = model.getRowCount() - 1; i >= 0; i--)
{
model.removeRow(i);
}
Ничего подобного миллионным уведомлениям утром ;-) – greenoldman
- 1. Удалить строку из JTable
- 2. JTable исключения удалить строку
- 3. Удалить строку Jtable JQuery
- 4. Удалить 1 выбранную строку из JTable
- 5. удалить строки из JTable
- 6. Как удалить строку из JTable на основе ввода текстового поля
- 7. Удалить столбец из JTable
- 8. Удалить строку в JTable с помощью RowFilter
- 9. Удалить строки редактируемого из JTable
- 10. JTable не удаляет строку
- 11. Невозможно удалить дубликаты из jtable.
- 12. Как удалить выбранные строки из JTable?
- 13. Невозможно удалить пустые строки из JTable
- 14. JTable удалить строку, щелкнув ячейку с помощью специального DeleteCellEditor из того же JTable
- 15. Как удалить данные из базы данных из jTable?
- 16. Как удалить строку в JTable и в MySQL
- 17. Как удалить строку в JTable на основе выбора Combo
- 18. Как найти выбранную строку в JTable, чтобы удалить ее?
- 19. Как добавить строку в JTable?
- 20. Как скрыть строку в JTable?
- 21. Как редактировать строку в JTable
- 22. Как выбрать строку в JTable?
- 23. Как удалить объект в JTable
- 24. JTable Удалить все строки Исключение
- 25. Установить строку переменной из строки JTable
- 26. Удалить выделенные столбцы и данные из jtable
- 27. Как удалить строку из строки
- 28. как удалить строку из dgrid
- 29. Как удалить строку из sql
- 30. Как удалить строку из строки?
Подсказка: если вы объясните, что вы уже пробовали, и что он-лайн уроки вы читали, люди будут более склонны помогать вам. Или дайте некоторый пример кода и сообщите нам, какой бит не работает. Прочтите это, если вы еще этого не сделали: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html –