| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > JTable - cортировка |
| Автор: Хрдличек 10.7.2003, 22:22 |
| Нужно отсортировать данные в JTable. Вот здесь нашел пример как это сделать: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html Там 3 файла - TableMap.java (implements TableModel and serves as a superclass for data manipulators) TableSorter.java is a TableMap subclass that sorts the data provided by another table model И третий, TableSorterDemo.java показывает как это работает. Так как программист я только временно из-за скупости нашего босса )) и опыта особого нет, то я просто скопировал все что можно из TableSorterDemo в мою программу: MyTableModel myModel = new MyTableModel(); TableSorter sorter = new TableSorter(myModel); //JTable table = new JTable(myModel); JTable table = new JTable(sorter); sorter.addMouseListenerToHeaderInTable(table); Код идентичный, за исключением того что Demo работает, а моя прога ругается следующим: t.java:65: <identifier> expected sorter.addMouseListenerToHeaderInTable(table); ^ t.java:65: package sorter does not exist sorter.addMouseListenerToHeaderInTable(table); Чего делать, люди добрые? Какой-то package надо создать? |
| Автор: simanyay 11.7.2003, 14:37 |
| Ты наверное создаешь эти классы в разных файлах? Если так, то тебе нужно создать пакет. Создай папку типа C:\stable и засунь эти файлы туда. Далее в начале каждого файла (перед import'ами!) пиши package stable;. После этого должно заработать. Есди неохота всё это делать, то создай файл TableSorterDemo.java и засунь туда, все эти классы. Но только сначала убери у всех классов КРОМЕ TableSorterDemo модификатор public. Если не получится пиши, разберусь в этих файлах более досконально. |
| Автор: Хрдличек 12.7.2003, 22:29 | ||
Я честно говоря думал, что если все файлы изначально находятся в одной папке, то они будут друг друга "видеть"? В любом случае, я сначала попытался провернуть второй вариант (все в одном файле) - те же самые две ошибки. А если пакет создавать, то нужно все файлы, входящие в пакет, перекомпилировать? Я сделал это для своей основной программы и получилось уже 4 ошибки: t.java:53: <identifier> expected sorter.addMouseListenerToHeaderInTable(table); //ADDED THIS ^ t.java:50: cannot resolve symbol symbol : class TableSorter location: class Mypack.t2 TableSorter sorter = new TableSorter(myModel); ^ t.java:53: package sorter does not exist sorter.addMouseListenerToHeaderInTable(table); ^ t.java:50: cannot resolve symbol symbol : class TableSorter location: class Mypack.t2 TableSorter sorter = new TableSorter(myModel); |
| Автор: Хрдличек 12.7.2003, 22:40 |
| Cейчас вернулся к первоначальному варианту без пакетов и закомментировал последнюю строчку генерирующую ошибки: MyTableModel myModel = new MyTableModel(); TableSorter sorter = new TableSorter(myModel); JTable table = new JTable(sorter); //sorter.addMouseListenerToHeaderInTable(table); Все прокомпилировалось, только конечно не сортирует ничего без Listener, но получается, что вторая строчка прошла нормально, значит тот класс оно все-таки видит? |