Идентификаторы JTable Colum не будут отображаться [дублировать]

Вот три примера функций, которые у меня есть в моем ~/.bashrc, которые являются по существу алиасами, которые принимают параметр:

#Utility required by all below functions.
#https://stackoverflow.com/questions/369758/how-to-trim-whitespace-from-bash-variable#comment21953456_3232433
alias trim="sed -e 's/^[[:space:]]*//g' -e 's/[[:space:]]*\$//g'"

.

:<

.

:<

.

:< /tmp/history

        #Clear all items in the current sessions history (in memory). This
        #empties out $HISTFILE.
        history -c

        #Overwrite the actual history file with the temp one.
        mv /tmp/history "$HISTFILE"

        #Now reload it.
        history -r "$HISTFILE"     #Alternative: exec bash
    else
        echo "Cancelled."
    fi
}

Ссылки:

3
задан mKorbel 18 December 2012 в 17:35
поделиться

2 ответа

Вот проблема.

JTable table = new JTable (data, columnNames);
f.add(table);

Не добавляйте таблицу напрямую. Используйте JScrollPane для отображения заголовков таблиц.

f.add(new JScrollPane(table))

Зачем вам нужно поставить таблицу в JScrollPane?

Из @Dan post:

Когда вы помещаете компонент внутри конструктора JScrollPane, вы указываете, к какому виду относится прокрутка.

С другой стороны, используя метод добавления, вы просто добавляете компонент в контейнер, например добавляете его в JPanel. Таким образом, вы не укажете компонент для добавления полос прокрутки к.

EDIT: из javadoc (процитировано trashgod в разделе комментариев)

Вот типичный код для создания панели прокрутки, которая служит в качестве контейнера для таблицы:

JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true); 

Две строки в этом фрагменте делают следующее: Конструктор JScrollPane вызывается с аргументом, который ссылается на объект таблицы. Это создает панель прокрутки в качестве контейнера для таблицы; таблица автоматически добавляется в контейнер. JTable.setFillsViewportHeight вызывается для установки свойства fillsViewportHeight. Когда это свойство верно, таблица использует всю высоту контейнера, даже если таблица не имеет достаточного количества строк для использования всего вертикального пространства. Это упрощает использование таблицы в качестве цели перетаскивания. Панель прокрутки автоматически помещает заголовок таблицы вверху окна просмотра. Имена столбцов остаются видимыми в верхней части области просмотра при прокрутке данных таблицы.

Если вы используете таблицу без панели прокрутки, вы должны получить компонент заголовка таблицы и поместить его самостоятельно. Например:

container.setLayout(new BorderLayout());
container.add(table.getTableHeader(), BorderLayout.PAGE_START);
container.add(table, BorderLayout.CENTER);
16
ответ дан Community 20 August 2018 в 16:50
поделиться

Если я правильно помню, вы должны положить вокруг него контейнер (например, JScrollPane).

4
ответ дан Jeroen Vannevel 20 August 2018 в 16:50
поделиться
  • 1
    спасибо :) Я думаю, мне нужно научиться делать это сейчас xD – Matthew Cassar 18 December 2012 в 17:24
  • 2
    Я не уверен, что это Eclipse или плагин, который я использую (Jigloo), но я могу просто щелкнуть по таблице и выбрать для «Surround by container». Эта ссылка должна установить вас на вашем пути независимо: roseindia.net/java/example/java/swing/ScrollableJTable.shtml – Jeroen Vannevel 18 December 2012 в 17:26
  • 3
    спасибо, что я использую JCreator (без помощи или предварительно сделанной графики), поскольку это для проекта – Matthew Cassar 18 December 2012 в 17:30
  • 4
    Это так же просто, как fS.add(new JScrollPane(tableS)); – mavroprovato 18 December 2012 в 17:38
Другие вопросы по тегам:

Похожие вопросы: