Cześć!
Piszę program w NetBeans.
Zrobiłem sobie takie okienko:
Zaprojektowałem sobie również taką "cegiełkę":
Chciałbym, aby przy każdym kliknięciu przycisku Add, na żółtym panelu pojawiała się kolejna taka cegiełka.
W tym momencie robię to tak:
int i = 0; //globalna
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DynamicPane dp = new DynamicPane();
dp.setBounds(0, i*30, 250, 25);
jPanel2.add(dp);
this.pack();
i++;
}
public class DynamicPane extends JComponent {
private JButton jb;
private JTextField jt;
private JCheckBox jc;
public DynamicPane(){
jb = new JButton("X");
jt = new JTextField("tekst");
jc = new JCheckBox();
jc.setBounds(1, 1, 20, 25);
jt.setBounds(30, 1, 100, 25);
jb.setBounds(130, 1, 200 , 25);
this.setPreferredSize( new Dimension(250,20) );
this.setMinimumSize( new Dimension(250,20) );
this.setLayout(null);
this.add(jc);
this.add(jt);
this.add(jb);
this.repaint();
}
}
W miarę to działa.
Gdybyście to skompilowali, zobaczylibyście jednak, że to rozwiązanie się raczej do niczego nie nadaje - nie trzyma wymiarów itp ..
Jak zrobić to elegancko, żeby trzymało rozmiar, żeby wszystko się mieściło itp? Panele obsługuje NetBeans!
Bardzo chętnie poczytam sugestie zarówno co do klasy DynamicPane jak i metody wstawiania jej do okna..