// 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 javax.swing.*; public class SwingVindue extends JFrame { JLabel labelHvadErDitNavn = new JLabel(); JTextField textFieldNavn = new JTextField(); JButton buttonOpdater = new JButton(); JTextArea textAreaHilsen = new JTextArea(); public void paint(Graphics g) { // vigtigt! Kald den oprindelige paint() så Swing-komponenter bliver tegnet super.paint(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); } // Fix til at få paint() kaldt på Jframe under JDK 1.5. Se Sun Bug Id: 6215263 { getRootPane().setOpaque(false); } public SwingVindue() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } 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)); textAreaHilsen.setText("Her kommer en tekst..."); textAreaHilsen.setBounds(new Rectangle(6, 102, 316, 78)); this.getContentPane().setLayout(null); this.getContentPane().add(labelHvadErDitNavn, null); this.getContentPane().add(textAreaHilsen, null); this.getContentPane().add(buttonOpdater, null); this.getContentPane().add(textFieldNavn, null); } public static void main(String[] arg) { SwingVindue vindue = new SwingVindue(); vindue.setSize(350,120); vindue.setVisible(true); } }