JTextField Width

1

Текстовое поле более широкое, чем я хочу, я попытался изменить номер в new JTextField("", 5) но он не влияет на ширину, которую она имеет при открытии рамки

    if (eventSource == bestelOnderdelen) {
        ArrayList<Integer> onderdeelNrs = new ArrayList<Integer>();
        ArrayList<String> onderdeelOmschrijving = new ArrayList<String>();
        for (int i = 0; i < modelOnderdelen.getRowCount(); i++) {
            if ((boolean) modelOnderdelen.getValueAt(i, 0)) {
                onderdeelNrs.add(Integer.parseInt((String)modelOnderdelen.getValueAt(i, 1)));
                onderdeelOmschrijving.add((String) modelOnderdelen.getValueAt(i, 2));
            }
        }

        bestellenOnderdelen = new JPanel();
        bestellenOnderdelen.setLayout(new FlowLayout());
        bestellenOnderdelen.add(new JLabel("Hoeveel wilt u van de volgende artikelen bestellen?"));

        for(Integer a: onderdeelNrs){
            bestellenOnderdelen.add(new JLabel(Integer.toString(a)+" "+onderdeelOmschrijving.get(onderdeelNrs.indexOf(a))));
            bestellenOnderdelen.add(new JTextField("", 5));
        }

        if(JOptionPane.showConfirmDialog(null, bestellenOnderdelen) == JOptionPane.YES_OPTION){

        }
    }

РЕДАКТИРОВАТЬ:

Я изменил макет из bestellenOnderdelen.setLayout(new BoxLayout(bestellenOnderdelen, BoxLayout.Y_AXIS)); to bestellenOnderdelen.setLayout(new FlowLayout()); но теперь я сталкиваюсь с другой проблемой, как мне дать панели фиксированную ширину и переменную высоту?

Теги:
swing
layout-manager
jtextfield

1 ответ

1
Лучший ответ

Это происходит, скорее всего, из-за LayoutManager. Попробуйте другой менеджер компоновки, такой как GridBagLayout, который намного более гибкий. Вы также можете переопределить метод getPreferredSize() в JTextField.

  • 0
    Сейчас я установил для него FlowLayout, но теперь у меня есть еще один вопрос: как дать панели фиксированную и переменную высоту?
  • 1
    Просто переопределите метод getPreferredWidth () на панели. В переопределенном методе return new Dimension(super.getPreferredSize().width, yourPreferredHeight) . Если вы просто хотите ограничить размер JFrame, посмотрите на метод setMinimumSize () в JFrame.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню