Nie jest to jakieś eleganckie ale na szybko mogło by to wyglądać tak:
package dotestow;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class test extends JFrame {
//konstruktor
smiec3(){
//init
initComponent();
}
private void initComponent(){
//layout dla panelu 1 i glownego
panel1.setLayout(new GridLayout(1,1));
mainPanel.setLayout(new FlowLayout());
panel1.add(button1);
mainPanel.add(panel1);
//staly rozmiar dla frame
frame.setSize(new Dimension(100,100));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setEditable(false);
frame.setVisible(true);
frame.add(mainPanel);
frame.setTitle("Glowne Okno");
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//staly rozmiar dla JDialog +title
dialog.setSize(new Dimension(400,400));
dialog.setTitle("JDialog okno");
//Layout dla panelu w JDialog (to ten panel o którym pisałem wcześniej
dPanel.setLayout(new GridLayout(20,1));
//wypelniam panel przyciskami od 0 do 19 JButton[20];
//oczywiście zamiast tego wypełniacza wstawiasz ten twój kod
for(int i= 0;i<20;i++){
// zamieniam int i na stringa pozniej dodaje do dPanel przycisk i nadaje mu nazwe Stringa s
String s = String.valueOf(i).toString();
dPanel.add(button[i]=new JButton(s));
}
//nie wiem jak to wytłumaczyć po prostu ma być ;]
pane.setViewportView(dPanel);
//dodaje JScrollPanel do JDialog
dialog.add(pane);
//bez tego nie wyswietli sie JDialog ale to zapewne juz wiesz ;]
dialog.setVisible(true);
}
});
}
private JButton button[] = new JButton[20];
private JPanel dPanel = new JPanel();
private JScrollPane pane = new JScrollPane();
private JDialog dialog = new JDialog();
private JFrame frame =new JFrame();
private JPanel mainPanel= new JPanel();
private JPanel panel1 = new JPanel();
private JButton button1= new JButton("Przycisk");
}
i wywołanie gdzieś tam:
public class MainClass {
public static void main(String[] args) {
test s = new test();
}
}
Mam nadzieję ze to rozwiąże twoje problemy ^^
Chciał bym z tego miejsca pozdrowić mamę, tatę i brata i, i jeszcze psa! ;]
PS. Aha ja to pisałem w eclipse wiec musiał byś sobie to zaimportować do netBeans jakoś albo w 2 stronę z netBeans do eclipse (co wydaje mi się prostsze) ja zawsze robię sobie szablony w netBeans a później importuje 2 biblioteczki do eclipse i wklejam kod no i oczywiście tam już sobie nanoszę poprawki.