KundeGui.java [Last ned]

/*
 *  Skjema for registrering av kundedata.
 *
 */
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
 
public class KundeGui extends JFrame 
  implements ActionListener, WindowListener {
 
  private BrimiSamling kunder;
 
  private JPanel       pnlKnapper;
  private JTextField   txtNr, txtNavn, txtAdresse;
  private JButton      btnForrige, btnNeste, btnNy, btnSlett, btnOppdater;
 
 
  public KundeGui(BrimiSamling kunder) {
    this.kunder = kunder;
    setTitle("Kunder");
    opprettGUI();
    pack();
    setLocationRelativeTo(null);
  }
 
 
  public void actionPerformed(ActionEvent e) {
    if (e.getSource() == btnForrige)
      kunder.forrige();
    else if (e.getSource() == btnNeste)
      kunder.neste(); 
    else if (e.getSource() == btnNy)
      kunder.ny();
    else if (e.getSource() == btnSlett)
      slett();
    else if (e.getSource() == btnOppdater)
      oppdater();
 
    vis();
  }
 
 
  public void windowClosing(WindowEvent e) {
    setVisible(false);
  }
 
 
  public void windowActivated(WindowEvent e)   {}
  public void windowDeactivated(WindowEvent e) {}
  public void windowDeiconified(WindowEvent e) {}
  public void windowIconified(WindowEvent e)   {}
  public void windowClosed(WindowEvent e)      {}
  public void windowOpened(WindowEvent e)      {}
 
 
  private void opprettGUI() {
    JPanel pnlSkjema = new JPanel();
 
    GridLayout gridLayout = new GridLayout(3, 2, 5, 5);
    pnlSkjema.setLayout(gridLayout);
 
    txtNr      = new JTextField(15);
    txtNavn    = new JTextField(15);
    txtAdresse = new JTextField(15);
 
    BrimiGui.leggTilFelt(pnlSkjema, "Kundenr:", txtNr);
    BrimiGui.leggTilFelt(pnlSkjema, "Navn:",    txtNavn);
    BrimiGui.leggTilFelt(pnlSkjema, "Adresse:", txtAdresse);
 
    pnlKnapper = new JPanel();
    FlowLayout flowLayout = new FlowLayout();
    flowLayout.setAlignment(FlowLayout.LEFT);
    pnlKnapper.setLayout(flowLayout);
 
    btnForrige = new JButton("Forrige");
    btnNeste = new JButton("Neste");
    btnNy = new JButton("Ny");
    btnOppdater = new JButton("Oppdater");
    btnSlett = new JButton("Slett");
    pnlKnapper.add(btnForrige);
    pnlKnapper.add(btnNeste);
    pnlKnapper.add(btnNy);
    pnlKnapper.add(btnOppdater);
    pnlKnapper.add(btnSlett);
 
    add(pnlSkjema, BorderLayout.CENTER);
    add(pnlKnapper, BorderLayout.SOUTH);
 
    btnForrige.addActionListener(this);
    btnNeste.addActionListener(this);
    btnNy.addActionListener(this);
    btnOppdater.addActionListener(this);
    btnSlett.addActionListener(this);
 
    txtNr.setEditable(false);
 
    vis();
  }  
 
 
  // Vis aktivt objekt på skjermen.
  private void vis() {
    Kunde k = (Kunde) kunder.denne();
    if (k != null) {
      txtNr.setText(Integer.toString(k.getNr()));
      txtNavn.setText(k.getNavn());
      txtAdresse.setText(k.getAdresse());
    }
  }
 
 
  // Oppdater aktivt objekt fra tekstfeltene.
  private void oppdater() {
    Kunde k = (Kunde) kunder.denne();
    if (k != null) {
      k.setNavn(txtNavn.getText());
      k.setAdresse(txtAdresse.getText());
    }
  }
 
 
  // Slett aktivt objekt.
  private void slett() {
    int knr = Integer.parseInt(txtNr.getText());
    if (!kunder.slett(knr))
      Brimi.melding("Kundenr " + knr + " finnes ikke!");
  }
 
}
 
Kildekode blir vist ved hjelp av GeSHi.