2014-10-30 4 views
0

У меня есть JTable, у которого есть записи, которые не могут вписаться в него, поэтому я решил добавить полосы прокрутки. Однако полоса прокрутки не появляется. Что я делаю не так?JTable не в состоянии добавить полосы прокрутки

new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
      table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 

      table.setBounds(10, 73, 850, 850); 

Согласно ответам я его, как это сейчас:

JScrollPane panel = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
      table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 

      panel.setBounds(10, 73, 850, 850); 
      contentPane.add(table); 

Теперь таблица даже не показано.

+0

Вам необходимо предоставить 'setbounds'' JScrollPane' не для 'JTable'. И избегайте использования 'null' layouts –

ответ

4

contentPane.add (table);

Вы удаляете таблицу из прокрутки.

Вы должны добавить панель прокрутки в рамку. Код должен быть:

contentPane.add(panel); 
3

Здесь:

table.setBounds(10, 73, 850, 850); 

вы снимаете себе в ногу, ограничивая размер JTable, предотвращая его expaining (и, таким образом, показывая скроллбары в JScrollPane), когда это необходимо.

Никогда, никогда, никогда не устанавливайте абсолютные размеры любых компонентов, избегайте пустых макетов, а не позволяйте предпочтительным размерам компонентов и менеджерам компоновки делать это за вас. Ваша общая ошибка новичков, так как кажется, что создавать сложные графические интерфейсы проще, устанавливая все размеры и позиции вещей самостоятельно, но вскоре вы обнаружите, что это ошибка, когда вы делаете это, вы излишне ограничивать гибкость и обновляемость вашего графического интерфейса, а также вы обнаружите, что он будет выглядеть ужасно на всех платформах и разрешениях экрана, отличных от ваших собственных. Опять же, изучите и используйте менеджеров макетов.

+0

Спасибо, как я могу установить минимальный размер? –

+0

@OndrejTokar 'JScrollPane' должен быть тем, который вы размер, в любом LayoutManager. – Compass

+0

@Hovercraft Full Of Eels, пожалуйста, проверьте изменения? –