// Eksemplet kræver muligvis JDK1.5 (Java 2 Standard Edition 5.0). // Bruger du JDK1.4 eller tidligere så se http://javabog.dk/OOP2/kode import java.awt.*; import java.awt.event.*; public class GrafiskVindue extends Frame { Label labelHvadErDitNavn = new Label(); TextField textFieldNavn = new TextField(); Button buttonOpdater = new Button(); TextArea textAreaHilsen = new TextArea(); public void paint(Graphics g) { g.drawLine(0,0,50,50); g.fillOval(5,20,300,30); g.setColor(Color.GREEN); String navn = textFieldNavn.getText(); for (int i=0; i<50; i=i+10) g.drawString("Hej "+navn+" !",100+i,30+i); } // Udviklingsværktøj definerer gerne en separat metode hvor de // initialiserer komponenterne. I JBuilder og JDeveloper hedder // den jbInit(), mens den hedder initComponents() i Betbeans. // Initialiseringen kunne dog lige så godt ligge direkte her i konstruktøren public GrafiskVindue() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } // Udviklingsværktøjets initialisering af komponenter. // ændr med varsomhed, ellers kan værktøjet ikke genkende "sin" kode. private void jbInit() throws Exception { labelHvadErDitNavn.setText("Hvad er dit navn?"); labelHvadErDitNavn.setBounds(new Rectangle(15, 69, 108, 15)); textFieldNavn.setText("Jacob"); textFieldNavn.setBounds(new Rectangle(129, 61, 95, 29)); buttonOpdater.setLabel("opdater!"); buttonOpdater.setBounds(new Rectangle(231, 60, 91, 32)); buttonOpdater.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { buttonOpdater_actionPerformed(e); } }); textAreaHilsen.setText("Her kommer en tekst..."); textAreaHilsen.setBounds(new Rectangle(6, 102, 316, 78)); this.setLayout(null); this.add(labelHvadErDitNavn, null); this.add(textAreaHilsen, null); this.add(buttonOpdater, null); this.add(textFieldNavn, null); } void buttonOpdater_actionPerformed(ActionEvent e) { String navn = textFieldNavn.getText(); System.out.println("Opdater! navn="+navn); textAreaHilsen.setText("Hej kære "+navn); repaint(); // gentegn vinduet } }