Irgendwas fehlt wohl noch in meinem Code, ich komm einfach nicht drauf, was es sein könnte.
Ich erzeuge in einer Schleife JLabels und JTextfields und weise Ihnen ihren Platz zu, dann füge ich sie in ein Jpanel ein. Das klappt ganz gut, außer das letzte JLabel, das sitzt links/mitte, also nicht unten am Ende.
Ich behelfe mir damit, daß ich noch ein zusätzliches JLabel erzeuge, und dieses mit einen Leerstring versehe, dann ist die Ausgabe OK, aber zufrieden bin ich mit dieser Lösung nicht.
Hier der Code:
Ich erzeuge in einer Schleife JLabels und JTextfields und weise Ihnen ihren Platz zu, dann füge ich sie in ein Jpanel ein. Das klappt ganz gut, außer das letzte JLabel, das sitzt links/mitte, also nicht unten am Ende.
Ich behelfe mir damit, daß ich noch ein zusätzliches JLabel erzeuge, und dieses mit einen Leerstring versehe, dann ist die Ausgabe OK, aber zufrieden bin ich mit dieser Lösung nicht.
Hier der Code:
Code:
JPanel pnlSortOrder = new JPanel();
pnlSortOrder.setLayout(new BorderLayout());
fillSortOrderPanel();
...
private void fillSortOrderPanel()
{
int i;
int yPosition;
if (oAllSPFieldsForDB != null) //Objekte aus der Datenbank
{
lblSortOrderNames = new JLabel[oAllSPFieldsForDB.size()+1]; //eins mehr als nötig
txtSortOrders = new JTextField[oAllSPFieldsForDB.size()];
CSupplierField oSPField; //Hilfsvariable zum iterieren
for (i = 0; i < oAllSPFieldsForDB.size(); i++) //4 bis 15 mal
{
yPosition = i * 25 + 20;
oSPField = oAllSPFieldsForDB.get(i);
lblSortOrderNames[i] = new JLabel();
lblSortOrderNames[i].setText(oLangObj.getValue(IConstants.QUERYPARAM, oSPField.getIntID()));
lblSortOrderNames[i].setBounds(new Rectangle(20, yPosition, 300, 20));
txtSortOrders[i] = new JTextField();
txtSortOrders[i].setText("" + oSPField.getSortingOrder()); // Integer
txtSortOrders[i].setBounds(new Rectangle(330, yPosition, 30, 20));
txtSortOrders[i].setHorizontalAlignment(JTextField.RIGHT);
pnlSortOrder.add(txtSortOrders[i], null);
pnlSortOrder.add(lblSortOrderNames[i], null);
}
// Die folgenden Zeilen sind Trickserei, weil das letzte JLabel in der Liste
//immer eine falsche Position (links-mitte) bekam
yPosition = i * 25 + 20;
lblSortOrderNames[i] = new JLabel();
lblSortOrderNames[i].setText(" ");
lblSortOrderNames[i].setBounds(new Rectangle(20, yPosition, 300, 20)); //wird natürlich ignoriert
pnlSortOrder.add(lblSortOrderNames[i], null);
}
}