nicht sicher, was durch Hinzufügen eines Etiketts hier dynamisch gemeint war.
Für mich dynamische Hinzufügen einer Komponente es bei Laufzeit hinzufügt. Das folgende Beispiel zeigt dies mit dem MigLayout
Manager:
package com.zetcode;
import java.awt.event.ActionEvent;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
import net.miginfocom.swing.MigLayout;
/*
Demonstrating dynamic addition of labels
with MigLayout manager.
Author: Jan Bodnar
Website: zetcode.com
*/
public class MigLayoutDynamicLabelsEx extends JFrame {
private int counter = 0;
public MigLayoutDynamicLabelsEx() {
initUI();
}
private void initUI() {
MigLayout layout = new MigLayout("wrap 4");
setLayout(layout);
JButton addBtn = new JButton("Add");
addBtn.addActionListener((ActionEvent e) -> {
JLabel lbl = createLabel();
add(lbl, "w 100lp, h 30lp");
pack();
});
add(addBtn);
add(createLabel(), "w 100lp, h 30lp");
add(createLabel(), "w 100lp, h 30lp");
add(createLabel(), "w 100lp, h 30lp");
pack();
setTitle("MigLayout dynamic example");
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private JLabel createLabel() {
counter++;
String text = "#table no." + counter;
JLabel lbl = new JLabel(text);
lbl.setBorder(BorderFactory.createEtchedBorder());
return lbl;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
MigLayoutDynamicLabelsEx ex = new MigLayoutDynamicLabelsEx();
ex.setVisible(true);
});
}
}
Zu Beginn gibt es Taste und drei Etiketten. Wenn Sie auf die Schaltfläche klicken, wird dem Layout eine neue Beschriftung hinzugefügt. Die wrap 4
Einschränkung erstellt 4 Spalten pro Zeile. Das Fenster wird mit der Methode pack()
reorganisiert.
Screenshot:
Vielleicht was, wenn Sie hinzufügen, bekommen Sie können die Menschen Ihnen helfen. – Harald