A konstruktor paramétereként meg kell adni, hogy mi lesz a párbeszédablak szülőablaka. Ezt követően példányosítjuk a grafikus elemeket. A párbeszédablakba be fogunk szúrni egy főpanelt, ennek megadjuk az alapelrendezését, amely BorderLayout lesz. A BorderLayout közepére helyezünk mégegy panelt (ezt panel_inputPanel-nek neveztük itt el), Ennek viszont GridLayout elrendezést adunk, amely tulajdonképpen egyfajta táblázatos szerkezetű elrendezést ad. Erre a panelre helyezünk rá konstans szövegeket (JLabel), és a beviteli mezőket (JTextField). A BorderLayout alsó részére jön a Felvisz gomb. Ehhez a gombhoz egy eseménykezelőt (ActionListener-t) rendelünk, amely figyeli, hogy megnyomtuk-e a gombot. Ha rányomunk a gombra, akkor az egy ActionEvent-et hoz létre. Az ActionListener figyeli ezeket az eseményeket és az actionPerfomed() metódusban dolgozza fel. A konstruktor végén szereplő pack() metódus a párbeszédablakot akkorára méretezi, amekkorában éppen elférnek a benne szereplő elemek.
public KonyvFelvitelUrlap(Frame szuloAblak) {
super(szuloAblak, "Új könyv felvitele");
// létrehozzuk a GUI objektumokat
this.tf_konyvszamMezo = new JTextField();
this.tf_szerzoMezo = new JTextField();
this.tf_cimMezo = new JTextField();
this.tf_kiadoMezo = new JTextField();
this.tf_evMezo = new JTextField();
this.button_felviszGomb = new JButton("Felvisz");
// létrehozzuk a paneleket és azok elrendezéseit
this.panel_foPanel = new JPanel();
this.panel_foPanel.setLayout(new BorderLayout());
this.panel_inputPanel = new JPanel();
this.panel_inputPanel.setLayout(new GridLayout(5,2));
// a főpanelt hozzáadjuk a dialógablakhoz
this.getContentPane().add(panel_foPanel);
// az input mezőket táblázatos elrendezésben helyezem el az input panelen
// mindegyik elé teszek egy konstans cimkét, hogy mit kell oda írni
// a GridLayout elrendezésű konténereket sorfolytonosan kell feltölteni
this.panel_inputPanel.add(new JLabel("Könyvszám:"));
this.panel_inputPanel.add(this.tf_konyvszamMezo);
this.panel_inputPanel.add(new JLabel("Cím:"));
this.panel_inputPanel.add(this.tf_cimMezo);
this.panel_inputPanel.add(new JLabel("Szerző:"));
this.panel_inputPanel.add(this.tf_szerzoMezo);
this.panel_inputPanel.add(new JLabel("Kiadó:"));
this.panel_inputPanel.add(this.tf_kiadoMezo);
this.panel_inputPanel.add(new JLabel("Kiadás éve:"));
this.panel_inputPanel.add(this.tf_evMezo);
// hozzáadjuk az input panelt a főpanelhez, középre
this.panel_foPanel.add(panel_inputPanel, BorderLayout.CENTER);
// a felvisz gombot hozzáadjuk a főpanel alsó részéhez
this.panel_foPanel.add(button_felviszGomb, BorderLayout.SOUTH);
// a FELVISZ gombhoz hozzárendelünk egy eseményfigyelőt
this.button_felviszGomb.addActionListener(this);
// a this azt mondja meg, hogy ez az osztály kezeli le az eseményt az actionPerformed() metódusban
this.pack();
}