unten JPanel unten = new JPanel(); unten.setlayout( new BoxLayout(unten, BoxLayout

Hochschule Darmstadt Fachbereich Informatik Entwicklung nutzerorientierter Anwendungen Prof. Dr. H.-P. Wiedling 04.07.2011 Lösungsvorschlag 1. Aufg...
Author: Kurt Stein
4 downloads 0 Views 149KB Size
Hochschule Darmstadt Fachbereich Informatik

Entwicklung nutzerorientierter Anwendungen Prof. Dr. H.-P. Wiedling

04.07.2011 Lösungsvorschlag

1. Aufgabe (12 + 12 Punkte): Screendesign 1P: im Center: Label mit Bild 3P: Panel im West mit BoxLayout und TextField, Scrollpane und TextArea

4P: Panel im East mit FlowLayout und Label, TextField, RadioButtonGroup und Button

4P: Panel im South mit BoxLayout und Label, TextField, Label, TextField, Glue, Button



jContentPane.setLayout(new BorderLayout()); // unten JPanel unten = new JPanel(); unten.setLayout( new BoxLayout(unten, BoxLayout.X_AXIS)); 1P

1P 1P

1P 1P

unten.add(new JLabel("Bieter")); bieter = new JTextField(" "); // bieter.setMaximumSize(new Dimension(50, 18)); // bieter.setPreferredSize(new Dimension(50, 18)); unten.add(bieter); unten.add(new JLabel("eigenes Gebot")); gebot = new JTextField(" "); //gebot.setMaximumSize(new Dimension(60, 18)); unten.add(gebot); unten.add(Box.createHorizontalGlue()); weiter = new JButton("weiter"); weiter.addActionListener(this); unten.add(weiter); // links JPanel links = new JPanel(); links.setLayout( new BoxLayout(links, BoxLayout.Y_AXIS)); JTextField vase = new JTextField(g.gegenstand); vase.setMaximumSize(new Dimension(180, 20));

Hochschule Darmstadt Fachbereich Informatik

1P

Entwicklung nutzerorientierter Anwendungen Prof. Dr. H.-P. Wiedling

1P

links.add(vase); JTextArea text = new JTextArea(7, 18); text.setText(g.beschreibung); JScrollPane p = new JScrollPane(text); p.setMaximumSize(new Dimension(180, 120)); links.add(p);

1P

// mitte JLabel icon = new JLabel(new ImageIcon(g.bild));

1P

// rechts JPanel rechts = new JPanel(); rechts.setLayout( new BoxLayout(rechts, BoxLayout.Y_AXIS)); rechts.add(new JLabel("Gebot"));

1P

top = new JTextField(String.valueOf(g.gebot)); top.setMaximumSize(new Dimension(180, 20)); rechts.add(top);

1P

1P

group = new ButtonGroup(); JRadioButton plus10 = new JRadioButton("+ 10"); JRadioButton plus50 = new JRadioButton("+ 50"); JRadioButton plus100 = new JRadioButton("+100"); group.add(plus10); group.add(plus50); group.add(plus100); rechts.add(plus10); rechts.add(plus50); rechts.add(plus100); plus10.setSelected(true); plus10.setActionCommand("10"); plus50.setActionCommand("50"); plus100.setActionCommand("100"); JButton inkrement = new JButton("Gebot erhöhen"); inkrement.addActionListener(this); rechts.add(inkrement); jContentPane.add(links, BorderLayout.WEST); jContentPane.add(icon, BorderLayout.CENTER); jContentPane.add(rechts, BorderLayout.EAST); jContentPane.add(unten, BorderLayout.SOUTH); this.pack();

Hochschule Darmstadt Fachbereich Informatik

Entwicklung nutzerorientierter Anwendungen Prof. Dr. H.-P. Wiedling

2. Aufgabe (6 Punkte): Interaktion

public class Versteigerung extends JFrame implements ActionListener {

1P

1P

1P

1P

1P

1P

weiter = new JButton ("weiter"); weiter.addActionListener(this); group = new ButtonGroup(); JRadioButton plus10 = new JRadioButton("+ 10"); JRadioButton plus50 = new JRadioButton("+ 50"); JRadioButton plus100 = new JRadioButton("+100"); group.add(plus10); group.add(plus50); group.add(plus100); rechts.add(plus10); rechts.add(plus50); rechts.add(plus100); plus10.setSelected(true); plus10.setActionCommand("10"); plus50.setActionCommand("50"); plus100.setActionCommand("100"); JButton inkrement = new JButton("Gebot erhöhen"); inkrement.addActionListener(this); rechts.add(inkrement);

public void actionPerformed(ActionEvent arg0) { if (arg0.equals(weiter)) { if (bieter.getText().isEmpty()) System.out.println("Bieter eintragen"); else { aktg.bieter = bieter.getText(); aktg.gebot = Double.parseDouble(top.getText()); } } else { String inkr = group.getSelection().getActionCommand(); double d = Double.parseDouble(top.getText()) + Double.parseDouble(inkr); top.setText(String.valueOf(d)); gebot.setText(top.getText()); } }

Hochschule Darmstadt Fachbereich Informatik

Entwicklung nutzerorientierter Anwendungen Prof. Dr. H.-P. Wiedling

3. Aufgabe (8 Punkte): Übersicht über Stand der Auktion

class Tabelle extends AbstractTableModel { ArrayList gegenstaende;

1P

1P

public Tabelle(ArrayList gegenstaende) { this.gegenstaende = gegenstaende; } public Class getColumnClass(int columnIndex) { try { if (columnIndex == 2) return Class.forName("java.lang.Double"); else return Class.forName("java.lang.String"); } catch (ClassNotFoundException ce) { System.out.println(ce.getMessage()); return null; } }

1P

public boolean isCellEditable(int rowIndex, int columnIndex) { return false; }

1P

public int getRowCount() { return gegenstaende.size();

1P

public int getColumnCount() { return 3; }

1P 1P

1P

}

public Object getValueAt(int row, int column) { Gegenstand g = gegenstaende.get(row); if (column == 2) return g.gebot; else if (column == 1) return g.bieter; else return g.gegenstand; } public void setValueAt(Object aValue, int rowIndex, int columnIndex) { return; }

public String getColumnName(int i) { if (i == 2) return "Gebot"; else if (i == 1) return "Bieter"; else return "Gegenstand"; } } // Uebersicht

Hochschule Darmstadt Fachbereich Informatik

Entwicklung nutzerorientierter Anwendungen Prof. Dr. H.-P. Wiedling

4. Aufgabe (12 Punkte): Navigationsübersicht über sämtliche Aktionen  1P Start + Anf/Ende 2 Benutzergruppen (Auktionator und Kunde/Bieter)  Auktionator: o 4P Gegenstände erfassen (Startgebot, Gegenstand, Beschreibung, Abbildung) o 1P Auktion beenden (nicht Programm beenden)

Auktionator Kunde/Bieter

o 1P Übersicht  Aufgabe 3 o  Bieter: o 3P Gegenstände auswählen (Auswahl, bietenKnopf) o 1P Bieten