Неправильное вертикальное выравнивание - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь выровнять некоторые таблицы в моем окне приложения.В следующем окне все 3 таблицы должны заполнить горизонтально область окна приложения.Вместо 2 из 3 таблиц занимают ровно 50% ширины окна приложения.

JFrame.getContentPane() -> JTabbedPane -> pnlInvoices = Box.createVerticalBox() -> компоненты с неправильным выравниванием.

Компоненты с неправильным выравниванием: JSplitPane, JTableHeader и JTable.Код, который создает это, является следующим:

JSplitPane sp = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
        new JScrollPane(tblInvoices),
        new JScrollPane(tblItems));
sp.setDividerSize(3);
sp.setDividerLocation(75);
Box pnlInvoices = Box.createVerticalBox();
pnlInvoices.add(sp);
JTable tblReport = PropertiesTableModel.createTable(irtm);
pnlInvoices.add(tblReport.getTableHeader());    // JTable must be inside JScrollPane, or else header must be added manually
pnlInvoices.add(tblReport);
//...
JTabbedPane tabs = new JTabbedPane();
//...
tabs.addTab("Τιμολόγια", pnlInvoices);
//...
getContentPane().add(tabs);

The result in application window

1 Ответ

0 голосов
/ 12 марта 2019

Проблема решена с помощью взлома.Но я не понимаю, почему.

    JSplitPane sp = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
            new JScrollPane(tblInvoices),
            new JScrollPane(tblItems));
    sp.setDividerSize(3);
    sp.setDividerLocation(75);
    Box pnl = Box.createHorizontalBox();        // Hack
    pnl.add(sp);
    Box pnlInvoices = Box.createVerticalBox();
    pnlInvoices.add(pnl);
    JTable tblReport = PropertiesTableModel.createTable(irtm);
    pnlInvoices.add(tblReport.getTableHeader());
    pnlInvoices.add(tblReport);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...