The textfield is wider than I want, I've tried changing the number in the new JTextField("", 5)
part but it doesn't affect the width it has when I open the frame
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){
}
}
EDIT:
I've changed the layout from bestellenOnderdelen.setLayout(new BoxLayout(bestellenOnderdelen, BoxLayout.Y_AXIS));
to bestellenOnderdelen.setLayout(new FlowLayout());
but now I face another problem, how do I give the panel a fixed width and variable height?
This is happening most probably due to the LayoutManager
. Try a different layout manager like GridBagLayout
, which is much more flexible. You may also want to override the getPreferredSize()
method in the JTextField
.