2015-01-14 4 views
1

У меня есть этот код для показа некоторых данных внутри JTable:JTable внутри JScrollPane размера ячейки и таблицы размеров

public class ShowResults extends JFrame { 

    public ShowResults(List<String> list) { 

     setSize(1000, 1000); 
     setLocationRelativeTo(null); //center 
     setVisible(true); 

     String[][] table_data = new String[pics.size()][table_header.length]; 

     for (int i = 0; i < pics.size(); i++) { 
      //Fill table with data 
     } 

     JTable table = new JTable(new DefaultTableModel(table_data, table_header)) { 
      @Override 
      public boolean isCellEditable(int row, int column) { 
       //disable table editing 
       return false; 
      } 
     }; 
     JScrollPane scroll_pane = new JScrollPane(table); 

     table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); 
     table.getTableHeader().setReorderingAllowed(false); 
     table.getTableHeader().setResizingAllowed(false); 

     this.setLayout(new FlowLayout()); 
     this.add(scroll_pane); 
    } 
} 

Но таблица не выглядит, как я ожидал. Я бы эту полосу прокрутки только вертикальной (теперь горизонтальной), а заголовок таблицы показывает целые имена заголовков (теперь таблица обернута по какой-то причине, я не знаю). Как я могу это сделать?

+1

Что такое table_header? Что такое фото? Можете ли вы предоставить полный рабочий пример. Также упрощает понимание вашей проблемы – BluesSolo

ответ

1

Я хотел бы, чтобы полоса прокрутки, только в вертикальном положении (в настоящее время находится в горизонтальном положении) и заголовок имен всего заголовка таблицы шоу (в настоящее время таблицы обернутые по какой-то причине я не знаю).

Причина в том, вы установили новый FlowLayout в качестве менеджера компоновки панели содержимого. Этот диспетчер компоновки соответствует размеру предпочтительных компонентов и, следовательно, предотвращает изменение размера панели прокрутки по вашему желанию. Я бы оставил менеджер компоновки по умолчанию, который равен BorderLayout, и добавьте панель прокрутки в местоположение CENTER.

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

0

Я бы использовал сетку. Также попробуйте удалить scroll_pane и посмотреть, не изменилось ли это. У меня возникли проблемы с использованием JScrollPane.

Смежные вопросы