04.07.2011 Lösungsvorschlag 1. Aufgabe (12 + 12 Punkte): Screendesign : 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)); 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));
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); // mitte JLabel icon = new JLabel(new ImageIcon(g.bild)); // rechts JPanel rechts = new JPanel(); rechts.setlayout( new BoxLayout(rechts, BoxLayout.Y_AXIS)); rechts.add(new JLabel("Gebot")); top = new JTextField(String.valueOf(g.gebot)); top.setmaximumsize(new Dimension(180, 20)); rechts.add(top); 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();
2. Aufgabe (6 Punkte): Interaktion public class Versteigerung extends JFrame implements ActionListener { 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"); { aktg.bieter = bieter.gettext(); aktg.gebot = Double.parseDouble(top.getText()); { String inkr = group.getselection().getactioncommand(); double d = Double.parseDouble(top.getText()) + Double.parseDouble(inkr); top.settext(string.valueof(d)); gebot.settext(top.gettext());
3. Aufgabe (8 Punkte): Übersicht über Stand der Auktion class Tabelle extends AbstractTableModel { ArrayList<Gegenstand> gegenstaende; public Tabelle(ArrayList<Gegenstand> gegenstaende) { this.gegenstaende = gegenstaende; public Class getcolumnclass(int columnindex) { try { if (columnindex == 2) return Class.forName("java.lang.Double"); return Class.forName("java.lang.String"); catch (ClassNotFoundException ce) { System.out.println(ce.getMessage()); return null; public boolean iscelleditable(int rowindex, int columnindex) { return false; public int getrowcount() { return gegenstaende.size(); public int getcolumncount() { return 3; public Object getvalueat(int row, int column) { Gegenstand g = gegenstaende.get(row); if (column == 2) return g.gebot; if (column == 1) return g.bieter; return g.gegenstand; public void setvalueat(object avalue, int rowindex, int columnindex) { return; public String getcolumnname(int i) { if (i == 2) return "Gebot"; if (i == 1) return "Bieter"; return "Gegenstand"; // Uebersicht
4. Aufgabe (12 Punkte): Navigationsübersicht über sämtliche Aktionen Start + Anf/Ende 2 Benutzergruppen (Auktionator und Kunde/Bieter) Auktionator: o 4P Gegenstände erfassen (Startgebot, Gegenstand, Beschreibung, Abbildung) o Auktion beenden (nicht Programm beenden) Auktionator Kunde/Bieter o Übersicht Aufgabe 3 o Bieter: o 3P Gegenstände auswählen (Auswahl, bietenknopf) o Bieten