Изменить высоту JTextField на Swing - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь зафиксировать высоту текстового поля "amountField", но не могу.

Я бы хотел, чтобы высота amountField имела ту же высоту, что и JComboBox, который он выше, так что выглядит лучше.

Прямо сейчас JTextField выглядит очень высоким по сравнению с остальным дизайном.

Я перепробовал все, что прочитал на этом форуме, но, похоже, ничего работа.

Я не знаю, имеет ли это отношение, но вся эта JPanel (WithdrawalScreen) находится внутри другой JPanel с BorderLayout. Эта панель является его центральной частью

Спасибо

PictureHere

public class WithdrawalScreen extends JPanel {

    Public JPanel init() {

        this.setLayout(new GridLayout(0,1));

        account = new JLabel("account");
        accountSelect = new JComboBox(labels);
        amount = new JLabel("amount");
        amountField = new JTextField("");
        submit = new JButton("SUBMIT");

        this.add(account);
        this.add(accountSelect);
        this.add(amount);
        this.add(amountField);
        this.add(submit);


        return this;
    }

} 


Ответы [ 2 ]

0 голосов
/ 17 января 2020

Компоновка сетки будет растягивать компонент и давать одинаковый размер всем его компонентам. Чтобы сохранить размер по умолчанию для каждого компонента, вы можете использовать BoxLayout с параметром BoxLayout.Y_AXIS в его конструкторе. Еще один способ - использовать макет JPanel с другим макетом. Допустим, FlowLayout.

JTextField textField = new JTextField(10);
JPanel nestedPanel = new JPanel(new FlowLayout());
nestedPanel.add(textField);
gridLayoutPanel.add(nestedPanel);

JTextField не будет растянут. nestedPanel будет. Сделайте несколько экспериментов самостоятельно, и вы найдете способ, который соответствует вашим потребностям.

Ссылка, которая поможет вам: Визуальное руководство для менеджеров по расположению.

0 голосов
/ 16 января 2020

Попробуйте создать сетку с 5 строками и 1 столбцом. Я думаю, что высота испорчена, потому что вы не устанавливаете аргументы конструктора должным образом.

 new GridLayout(5,1);
...