Текстовое поле более широкое, чем я хочу, я попытался изменить номер в 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());
но теперь я сталкиваюсь с другой проблемой, как мне дать панели фиксированную ширину и переменную высоту?
Это происходит, скорее всего, из-за LayoutManager
. Попробуйте другой менеджер компоновки, такой как GridBagLayout
, который намного более гибкий. Вы также можете переопределить метод getPreferredSize()
в JTextField
.
return new Dimension(super.getPreferredSize().width, yourPreferredHeight)
. Если вы просто хотите ограничить размер JFrame, посмотрите на метод setMinimumSize () в JFrame.