Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JTable, выелить несколько рядов 
V
    Опции темы
PashaOvechkin
Дата 3.3.2008, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 1.4.2007
Где: Riga, Latvia

Репутация: 1
Всего: 4



Привет! 

Сабж smile 

Нужно сделать так, что бы удерживая Ctrl можно было выделить несколько рядов.
И потом получить доступ к етим рядам после нажатия правой кнопки мыши.
Спасибо.
PM MAIL Skype   Вверх
PashaOvechkin
Дата 3.3.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 1.4.2007
Где: Riga, Latvia

Репутация: 1
Всего: 4



new JTable().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);


Thanks

Это сообщение отредактировал(а) PashaOvechkin - 3.3.2008, 16:56
PM MAIL Skype   Вверх
PashaOvechkin
Дата 3.3.2008, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 1.4.2007
Где: Riga, Latvia

Репутация: 1
Всего: 4



Да уж...
Вопрос не закрыт...

Таблица -> 

Код



@SuppressWarnings("serial")
public class MessageТабле extends JTable {

    public MessageList(boolean showTime) {
        super(new MessageTableModel());
        //this.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

}



Модель -> 
Код



@SuppressWarnings("serial")
public class MessageTableModel extends AbstractTableModel {

    private List<Notification> messages = new ArrayList<Notification>();

    public static final int TIME_COLUMN = 0;
    public static final int MESSAGE_COLUMN = 1;

    private String[] columnNames = {"Time", "Message"};

    /**
     * Construct the model.
     */
    public MessageTableModel() {
    }

    /**
     * Get row count for the table, which equals exactly the number of messages
     * displayed.
     * @return row count for the table.
     */
    public int getRowCount() {
        return messages.size();
    }


    /**
     * Get column count for the table (2).
     * @return column count for the table.
     */
    public int getColumnCount() {
        return columnNames.length;
    }

    /**
     * Get the name of the column.
     * @param column Column index.
     * @return Column name.
     */
    public String getColumnName(int column) {
        return columnNames[column];
    }

    /**
     * Get value at the table cell with specified position. Value can be the
     * message creation time for TIME_COLUMN, or message content for MESSAGE_COLUMN.
     * @param rowIndex Table row scheduled for rendering.
     * @param columnIndex Table column scheduled for rendering.
     * @return value of the table cell.
     */
    public Object getValueAt(int rowIndex, int columnIndex) {
        Notification message = messages.get(rowIndex);
        switch (columnIndex) {
            case TIME_COLUMN:
                Date timestamp = message.getTimestamp();
                if (timestamp != null) {
                    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
                    return dateFormat.format(timestamp);
                } else {
                    return null;
                }
            case MESSAGE_COLUMN:
                return message.getContent();
            default:
                return null;
        }
    }

    /**
     * Add new notification message to display within the table.
     * @param message Notification message.
     */
    public void addMessage(Notification message) {
        messages.add(0, message);
        if(messages.size()>1000){
            messages.remove(messages.size()-1);
        }
        fireTableRowsInserted(0, 0);
    }

    /**
     * Clear all messages from the table.
     */
    public void clear() {
        messages.clear();
        fireTableDataChanged();
    }

    /**
     * Return notification message of corresponding row.
     * @param row Row index.
     * @return Notification message at this row.
     */
    public Notification getNotification(int row) {
        if (row < messages.size()) {
            return messages.get(row);
        } else {
            return null;
        }
    }
}



Когда к таблица строится по модели, 
setSelectionMode игнорируется, и можно выбрать только один ряд.
Что делать? 
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0616 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.