Sie sind auf Seite 1von 3

import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.

*; public class StatistikFrame extends JFrame implements ActionListener, Observer { //Definition of local variables and objects private GridBagLayout layout; private JLabel input, antal, gennemsnit; private JTextField inputField, antalField, gennemsnitField; private int gennemsnitValue; private JMenuItem clear, exit; private StatistikModel model; //Set-constructor public StatistikFrame(String title) { super(title); layout = new GridBagLayout(); getContentPane().setLayout(layout); model = new StatistikModel(); model.addObserver(this); setJMenuBar( makeMenuBar()); //Instantiation of local variables and objects GridBagConstraints con; input = new JLabel("Input:"); antal = new JLabel("Antal:"); gennemsnit = new JLabel("Gennemsnit:"); inputField = new JTextField(8); inputField.addActionListener(this); antalField = new JTextField(8); antalField.setEditable(false); antalField.setText("0"); gennemsnitField = new JTextField(8); gennemsnitField.setEditable(false); gennemsnitField.setText("-"); Insets ins = new Insets(3, 4, 3, 4); //Adding local objects to the GUI con = createGBC(0, 0, 1, 1); con.anchor = GridBagConstraints.WEST; con.insets = ins; add(input, con); con = createGBC(1, 0, 1, 1); con.fill = GridBagConstraints.HORIZONTAL; con.weightx = 1; con.insets = ins; add(inputField, con); con = createGBC(0, 1, 1, 1); con.insets = ins; con.anchor = GridBagConstraints.WEST; add(antal, con); con = createGBC(1, 1, 1, 1); con.fill = GridBagConstraints.HORIZONTAL; con.weightx = 1;

con.insets = ins; add(antalField, con); con = createGBC(0, 2, 1, 1); con.insets = ins; con.anchor = GridBagConstraints.WEST; add(gennemsnit, con); con = createGBC(1, 2, 1, 1); con.fill = GridBagConstraints.HORIZONTAL; con.weightx = 1; con.insets = ins; add(gennemsnitField, con); pack(); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); } private GridBagConstraints createGBC( int x, int y, int width, int heigh t ) { GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = x; gbc.gridy = y; gbc.gridwidth = width; gbc.gridheight = height; return gbc; } private void add( JComponent component, GridBagConstraints gbc ) { layout.setConstraints( component, gbc ); getContentPane().add( component ); } //Local method for generating the menu private JMenuBar makeMenuBar() { JMenuBar menu = new JMenuBar(); JMenu file = new JMenu("File"); //Menupunktet clear clear = new JMenuItem("Clear"); clear.setAccelerator(KeyStroke.getKeyStroke('C', Event.ALT_MASK) ); clear.addActionListener(this); file.add(clear); //Menupunktet exit exit = new JMenuItem("Exit"); exit.setAccelerator(KeyStroke.getKeyStroke('X', Event.ALT_MASK)) ; exit.addActionListener(this); file.add(exit); menu.add(file); return menu; }

public void actionPerformed(ActionEvent e) { Object source = e.getSource(); String inputFieldText = inputField.getText(); int inputValue; //Actionevent handler for inputField if (source == inputField) { try { inputValue = Integer.parseInt(inputFieldText); model.add(inputValue); } catch (NumberFormatException NE) { inputField.setText("Error: " + inputFieldText); } //Actionevent handler for the clear button } else if (source == clear) { model.clear(); //Actionevent handler for the exit button } else if (source == exit) { System.exit(0); } else { System.out.println("Hej"); } } public void update(Observable o, Object obj) { gennemsnitValue = 0; if (model.antal() != 0) { gennemsnitValue = model.sum() / model.antal(); gennemsnitField.setText("" + gennemsnitValue); } if (gennemsnitValue == 0) { gennemsnitField.setText("-"); } antalField.setText("" + model.antal()); inputField.setText(""); } }

Das könnte Ihnen auch gefallen