VareGui.java [Last ned]

/*
 *  Skjema for registrering av varedata.
 *
 */
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
 
public class VareGui extends JFrame 
  implements ActionListener, WindowListener {
 
  private BrimiSamling varer;
 
  private JPanel       pnlKnapper;
  private JTextField   txtNr, txtNavn, txtPris;
  private JButton      btnForrige, btnNeste, btnNy, btnSlett, btnOppdater;
 
 
  public VareGui(BrimiSamling varer) {
    this.varer = varer;
    setTitle("Varer");
    opprettGUI();
    pack();
    setLocationRelativeTo(null);
  }
 
 
  public void actionPerformed(ActionEvent e) {
    if (e.getSource() == btnForrige)
      varer.forrige();
    else if (e.getSource() == btnNeste)
      varer.neste(); 
    else if (e.getSource() == btnNy)
      varer.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);
    txtPris   = new JTextField(15);
 
    BrimiGui.leggTilFelt(pnlSkjema, "Varenr:", txtNr);
    BrimiGui.leggTilFelt(pnlSkjema, "Navn:",   txtNavn);
    BrimiGui.leggTilFelt(pnlSkjema, "Pris:",   txtPris);
 
    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() {
    Vare v = (Vare) varer.denne();
    if (v != null) {
      txtNr.setText(Integer.toString(v.getNr()));
      txtNavn.setText(v.getNavn());
      txtPris.setText(Double.toString(v.getPris()));
    }
  }
 
 
  // Oppdater aktivt objekt fra tekstfeltene.
  private void oppdater() {
    Vare v = (Vare) varer.denne();
    if (v != null) {
      v.setNavn(txtNavn.getText());
      v.setPris(Double.parseDouble(txtPris.getText()));
    }
  }
 
 
  // Slett aktivt objekt.
  private void slett() {
    int vnr = Integer.parseInt(txtNr.getText());
    if (!varer.slett(vnr))
      Brimi.melding("Varenr " + vnr + " finnes ikke!");
  }
 
}
 
Kildekode blir vist ved hjelp av GeSHi.