JScrollPane не работает, я использовал JForm Layout

JScrollPane не работает. Я создал панель внутри нее, я добавляю JForm Layout. Затем я добавляю метку и одну динамическую панель добавляю JScrollPane, в которую я добавляю таблицу.

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

public LedgerPanel_UI() {
    setLayout(new FormLayout(new ColumnSpec[] {
            FormSpecs.RELATED_GAP_COLSPEC,
            ColumnSpec.decode("244dlu"),
            FormSpecs.RELATED_GAP_COLSPEC,
            ColumnSpec.decode("250dlu"),},
        new RowSpec[] {
            FormSpecs.RELATED_GAP_ROWSPEC,
            RowSpec.decode("20dlu"),
            FormSpecs.RELATED_GAP_ROWSPEC,
            RowSpec.decode("fill:207dlu"),
            FormSpecs.RELATED_GAP_ROWSPEC,
            RowSpec.decode("fill:179dlu"),}));


    style = new Style();

    TableModel_Ledgers model = new TableModel_Ledgers();
    JTable table = new JTable(model);
    model.setColumnSize(table);
    style.style_Table(table, table.getTableHeader(), false);
    //scrollPane.getViewport().setPreferredSize(this.getPreferredSize());

    model.setData();
    model.fireTableDataChanged();


    JLabel lblNewLabel = new JLabel("Add New Customer");


    JScrollPane scrollPane = new JScrollPane();
    //scrollPane = style.style_JScrollPane(scrollPane, table);
    scrollPane.setViewportView(table);
    add(new AddNewLedgerAccountp_UI().init_UI(), "4, 4");
    add(lblNewLabel, "4, 2, center, fill");
    add(scrollPane, "2, 4, 1, 3, fill, fill");

}

3 ответа

Решение

Это сработало для меня после некоторой борьбы.table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );

Вы должны попробовать это. Это всегда должно отображать правителей.

scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

Вы можете попробовать это:

JTable table = new JTable(model);
JScrollPane scrollpane= new JScrollPane(table);
add(new AddNewLedgerAccountp_UI().init_UI(), "4, 4");
...

Это сработало для моего JTextArea просто отлично. Я не знаю, работает ли он с JTable или вашим макетом.

РЕДАКТИРОВАТЬ: работает для меня с JTable тоже.

Другие вопросы по тегам