import java.awt.*; import java.awt.event.*; import javax.swing.*; class GUI { public static void main(String[] args) { // Opprett et vindu til GUI-programmet JFrame vindu = new JFrame("GUI program"); vindu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Opprett et panel som inneholder GUI-elementer JPanel panel = new JPanel(); vindu.add(panel); // Tekst-GUI-element JLabel tekst = new JLabel("JLabel tekst"); panel.add(tekst); // Knapp-GUI-element JButton knapp = new JButton("Knapp"); knapp.addActionListener(new AvsluttProgram()); panel.add(knapp); knapp.setText("annen kanpp"); // Tekstfelt-guid-element JTextField tekstfelt = new JTextField("Dette er et tekstfelt", 30); panel.add(tekstfelt); String tekstfeltTekst = tekstfelt.getText(); System.out.println(tekstfelt.getText()); tekstfelt.setText("Ny tekstfeltinnhold"); // filvelger JFileChooser filvelger = new JFileChooser(); int resultat = filvelger.showOpenDialog(null); // if (resultat == 1) { // System.exit(1); // } // endre layout til rutenett-form panel.setLayout(new GridLayout(2, 2)); //lage en knapp som teller antall trykket TellerKnapp tellerKnapp = new TellerKnapp("0"); panel.add(tellerKnapp); // start tr?d som kj?rer GUI-programmet vindu.pack(); vindu.setVisible(true); } } // egen subklasse av JButton, er laget for ? ta hensyn til et spesifikt problem class TellerKnapp extends JButton { private int teller = 0; private String tekst; public TellerKnapp(String tekst) { super(tekst); this.tekst = tekst; this.initGUI(); } // har en egen ActionListener class OekTeller implements ActionListener { @Override public void actionPerformed(ActionEvent e) { teller++; setText(String.valueOf(teller)); } } // kobler knappen til ActionListeneren public void initGUI() { this.addActionListener(new OekTeller()); } } // eksempel p? en ActionListener class AvsluttProgram implements ActionListener { @Override public void actionPerformed(ActionEvent e) { System.out.println("programmet stopper"); System.exit(0); } }