Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > GridBagLayout и JTextPane


Автор: xctepx 3.12.2008, 15:10
Доброе время суток!

Столкнулся с такой проблемой при использовании GridBagLayout и JTextPane.
На форму кладётся множество текстовых полей для имитации таблицы (простейший аналог Word и OpenOffice Writer).
Но при редактировании данных в одной ячейке меняется размер всех текстовых полей. Но нужно, чтобы изменялся размер только тогда, когда уже не хватает места в текстовом поле. А само текстовое поле должно полностью растягиваться на всю ширину/высоту "ячейки".

Вот простейший пример, который иллюстрирует эту ситуацию.

Код

import javax.swing.*;
import javax.swing.border.LineBorder;
import java.awt.*;

public class Main extends JFrame
{
    public Main()
    {
        super.setLayout(new GridBagLayout());

        GridBagConstraints constraints = new GridBagConstraints();
        constraints.gridwidth = 1;
        constraints.gridheight = 1;
        constraints.anchor = GridBagConstraints.CENTER;
        constraints.fill = GridBagConstraints.BOTH;
        constraints.weightx = 1.0;
        constraints.weighty = 1.0;

        constraints.gridx = 1;
        constraints.gridy = 1;
        JTextPane pane1 = new JTextPane();
        pane1.setBorder(new LineBorder(Color.blue));
        super.add(pane1, constraints);

        constraints.gridx = 2;
        super.add(new JTextPane(), constraints);
        super.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args)
    {
        Main m = new Main();
        m.setSize(200, 200);
        m.setVisible(true);
    }
}


Сколько не игрался с параметрами GridBagConstraints, ничего не получается

Автор: Connie 6.12.2008, 17:43
xctepx, а почему просто не использовать таблицу?
Код


        JTextPane pane1 = new JTextPane();
        pane1.setBorder(new LineBorder(Color.blue));
        super.add(new jScrollPane(pane1), constraints);

Автор: xctepx 7.12.2008, 12:16
Хмм, спасибо! Помогло!

Таблицу использовать не получится, так как уже слишком много кода придётся изменять

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)