2014-11-24 2 views
1

Я создал MigLayout, который выглядит так:Изменение размера таблицы в miglayou

enter image description here

Как вы можете видеть в таблице не размер правильно.

Я создаю макет так:

public JScrollPane createLayout() { 
    JPanel panel = new JPanel(new MigLayout("debug 400")); 
    JScrollPane sp; 

    JLabel lab = new JLabel(labelValue); 
    lab.setFont(new Font("Tahoma", Font.BOLD, 15)); 

    panel.add(lab, "wrap"); 
    panel.add(resultsTable(), "growx, wrap"); 
    panel.add(resultsButtons(), "wrap"); 

    //set table properties 
    tableProperties(resultTable); 
    updateResultsTable(); 

    sp = new JScrollPane(panel); 
    sp.repaint(); 
    sp.validate(); 

    return sp; 
} 

Моя таблица создается так:

private JPanel resultsTable() { 
    JPanel panel = new JPanel(new MigLayout("")); 
    JScrollPane scrollTablePane; 
    rtm = new ResultTableModel(resultList); 
    resultTable = new JTable(rtm); 
    scrollTablePane = new JScrollPane(resultTable); 
    sorter = new TableRowSorter<TableModel>(resultTable.getModel()); 
    resultTable.setRowSorter(sorter); 

    scrollTablePane.repaint(); 
    scrollTablePane.validate(); 

    //add to panel 
    panel.add(scrollTablePane); 
    panel.repaint(); 
    panel.validate(); 

    return panel; 
} 

Кроме того, я установил свойства таблицы следующим способом:

public void tableProperties(JTable table) { 
    table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); 
} 

Любые рекомендации, почему мои столбцы таблицы не растягиваются?

Я ценю ваш ответ!

+0

Смотрите этот связанный Q & A: [Изменить размер таблицы больше growx] (HTTP://stackoverflow.com/a/25535913/1795530). – dic19

+0

Я натыкаюсь на некоторые недостающие идентификаторы в вашем коде: resultsButtons(), resultTable, updateResultsTable(), rtm, class ResultTableModel [из NCSA, gSwing, DFKI?], ResultList и сортировщик. Используете ли вы [МиГ-макет 4.2] (http://search.maven.org/remotecontent?filepath=com/miglayout/miglayout-swing/4.2/miglayout-swing-4.2.jar)? –

ответ

1

Если вы хотите, чтобы ваша таблица будет автоматически изменяемая попыткой использовать внутри createLayout метода следующего конструктора JPanel panel = new JPanel(new MigLayout("debug 400,wrap 1","[grow,fill]","[grow,fill]")) и внутри resultsTable метода следующего конструктора JPanel panel = new JPanel(new MigLayout("","[grow,fill]","[grow,fill]"))

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