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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно работать с jScrollPane ? 
:(
    Опции темы
erslgoeirjh
Дата 28.1.2011, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 16.12.2005

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



Есть код:

Код

public Object[][] data = { { "" }, { "" }, { "" }, { "" }, { "" }, { "" },
            { "" }, { "" }, { "" }, { "" }, { "" }, { "" }, { "" }, { "" },
            { "" }, { "" } };
 
    public Object[] columnnames = { "DT_PREKR_L", "T_PREKR_L", "SH_PREKR_L", "DLG_PREKR_L", "DT_PREKR", "T_PREKR", "SH_PREKR", "DLG_PREKR", "DT_PREKR_R", 
  "T_PREKR_R", "SH_PREKR_R", "DLG_PREKR_R", "DT", "T", "WR", "DWRD" };
 
    public DefaultTableModel myTM = new DefaultTableModel(data, columnnames);
 
    private JPanel getJPanel1() {
        if (jPanel1 == null) {
            jPanel1 = new JPanel();
            jPanel1.setLayout(null);
            jPanel1.setBounds(2, 2, 896, 336);
            jPanel1.setBorder(BorderFactory
                    .createEtchedBorder(EtchedBorder.LOWERED));
            jPanel1.setVisible(false);
            jPanel1.add(getJTextField1(), null);
            jPanel1.add(getJTextField2(), null);
            jPanel1.add(getJTextField3(), null);
            jPanel1.add(getJTextField4(), null);
            jPanel1.add(getJTextField5(), null);
            jPanel1.add(getJTextField6(), null);
            jPanel1.add(getJLabel2(), null);
            jPanel1.add(getJLabel3(), null);
            jPanel1.add(getJLabel4(), null);
            jPanel1.add(getJLabel5(), null);
            jPanel1.add(getJLabel6(), null);
            jPanel1.add(getJLabel7(), null);
            jPanel1.add(getJScrollPane(), null);
        }
        return jPanel1;
    }
 
    private JScrollPane getJScrollPane() {
        if (jScrollPane == null) {
            jScrollPane = new JScrollPane();
            jScrollPane.setBounds(new Rectangle(16, 211, 861, 126));
            jScrollPane.setViewportView(getJTable());
            jScrollPane
                    .setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
            jScrollPane
                    .setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
        }
        return jScrollPane;
    }
 
private JTable getJTable() {
        if (jTable == null) {
            TableColumnModel jthcm;
            TableColumn jthc0, jthc1, jthc2, jthc3, jthc4, jthc5, jthc6, jthc7, jthc8, jthc9, jthc10, jthc11, jthc12, jthc13, jthc14, jthc15;
 
            jTable = new JTable(myTM);
            jTable.setBounds(0, 0, 1120, 16);
            jTable.setSize(1120, 16);
            jTable.setPreferredSize(new Dimension(1120, 16));
            jTableHeader = jTable.getTableHeader();
            jTableHeader.setBounds(0, 0, 1120, 16);
            jTableHeader.setSize(1120, 16);
            jTableHeader.setPreferredSize(new Dimension(1120, 16));
            jthcm = jTableHeader.getColumnModel();
            jthc0 = jthcm.getColumn(0);
            //jthc0.setHeaderValue("DT_PREKR_L");
            jthc1 = jthcm.getColumn(1);
            //jthc1.setHeaderValue("T_PREKR_L");
            jthc2 = jthcm.getColumn(2);
            //jthc2.setHeaderValue("SH_PREKR_L");
            jthc3 = jthcm.getColumn(3);
            //jthc3.setHeaderValue("DLG_PREKR_L");
            jthc4 = jthcm.getColumn(4);
            //jthc4.setHeaderValue("DT_PREKR");
            jthc5 = jthcm.getColumn(5);
            //jthc5.setHeaderValue("T_PREKR");
            jthc6 = jthcm.getColumn(6);
            //jthc6.setHeaderValue("SH_PREKR");
            jthc7 = jthcm.getColumn(7);
            //jthc7.setHeaderValue("DLG_PREKR");
            jthc8 = jthcm.getColumn(8);
            //jthc8.setHeaderValue("DT_PREKR_R");
            jthc9 = jthcm.getColumn(9);
            //jthc9.setHeaderValue("T_PREKR_R");
            jthc10 = jthcm.getColumn(10);
            //jthc10.setHeaderValue("SH_PREKR_R");
            jthc11 = jthcm.getColumn(11);
            //jthc11.setHeaderValue("DLG_PREKR_R");
            jthc12 = jthcm.getColumn(12);
            //jthc12.setHeaderValue("DT");
            jthc13 = jthcm.getColumn(13);
            //jthc13.setHeaderValue("T");
            jthc14 = jthcm.getColumn(14);
            //jthc14.setHeaderValue("WR");
            jthc15 = jthcm.getColumn(15);
            //jthc15.setHeaderValue("DWRD");
            jTableHeader.setVisible(true);
            jTable.setTableHeader(jTableHeader);
        }
        return jTable;
    }


Как видно из этого кода, на панель jPanel1 посажен jScrollPane, а внутри jScrollPane помещена jTable. У jTable есть заголовок jTableHeader. Причём ширина jTable--больше, чем ширина jScrollPane.

Скроллирование по вертикали нормально работает. Но что касается скроллирования по горизонтали, то его нет--все 16 столбцов таблицы отображаются внутри скроллпейна сразу. Я же хочу, чтобы внутри скроллпейна отображалось только 12 столбцов, а для просмотра остальных 4 столбцов нужно было производить скроллирование по горизонтали.

Как это сделать? Может быть, использовать TableColumnModel и TableColumn и задать для столбцов (тип TableColumn) значение PreferredSize равное, например, 70 ?
Или же мне как-то следует поработать с jScrollPaneLayout? 

PM MAIL   Вверх
COVD
Дата 28.1.2011, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

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



Цитата

задать для столбцов (тип TableColumn) значение PreferredSize MinimumSize


PM MAIL   Вверх
_Y_
Дата 28.1.2011, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

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



У таблицыНадо отменить автоподгонку ширины колонок. Ну и установить желательную ширину колонок или каждой колонки по отдельности.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0439 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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