pb00067
Mitglied
- Registriert
- 26 Aug 2013
- Beiträge
- 29
- Punkte Reaktionen
- 0
Die Resultateingabe ist sehr hakelig. Da wäre ein Excel-artiges Look and Feel schön. In die Zelle klicken, Tor eintragen, fertig.
Die Direkteingabe des Resultats scheint ein Dauerbrenner zu sein.
Zwar gibt es ja die schnelle Ergebniseingabe, aber gänzlich auf die Tordifferenz zu verzichten, ist anscheinend doch nicht jedermann's Sache.
Ich hätte dazu folgenden Verbesserungsvorschlag:
Als erstes würde ich in Begegnungen eine zusätzliche Spalte "Ergebnis" vorschlagen, welche die Informationen aus Spalten "Tore Team1" und "Tore Team2" in der Form tore1 : tore2 zusammenfasst.
Diese Spalte sollte idealerweise zwischen Team1 und Team2 plaziert sein und macht vor allem dann Sinn, wenn die Anzahl der Gewinnsätze auf 1 eingestellt ist.
In diesem Fall könnte man die Spalten Sätze/Tore-Team1/2 ausblenden (manuell oder automatisch, ist egal) und hätte somit eine sehr übersichtliche Begegnungstabelle in der Form: Spieltag, Team1, Ergebnis, Team2, etc.
Darüberhinaus wäre es in diesem Spezialfall (Gewinnsätze == 1) ohne grösseren Aufwand möglich die Spalte "Ergebnis" für eine Schnelleingabe editierbar zu machen.
Hier ein Beispiel wie man die Direkteingabe implementieren könnte (vereinfacht):
Code:
import javax.swing.CellEditor;
import javax.swing.DefaultCellEditor;
import javax.swing.event.CellEditorListener;
import javax.swing.event.ChangeEvent;
import javax.swing.table.AbstractTableModel;
...
CellEditorListener changeNotification = new CellEditorListener() {
public void editingStopped(ChangeEvent e) {
// if (Gewinnsatze > 1) return; Direkteingabe macht nur mit 1 Gewinnsatz Sinn
CellEditor ed = (CellEditor) e.getSource();
String newContent = (String) ed.getCellEditorValue();
// verify content
String[] results = newContent.split(":"); // die beiden Zahlen müssen durch einen Doppelpunkt getrennt sein
if (results.length != 2)
return; // Eingabe nicht OK, da Doppelpunkt fehlt. TODO Fenster mit entspr. Warnung aufpoppen lassen
Integer tore1 = 0, tore2 = 0;
try {
tore1 = Integer.parseInt(results[0].trim());
tore2 = Integer.parseInt(results[1].trim());
}
catch (NumberFormatException nf) {
return; // Eingabe nicht OK, da keine korrekten Zahlen eingegeben wurden. TODO Fenster mit entspr. Warnung aufpoppen lassen
}
// Eingabe OK
// TODO Wichtig: An dieser Stelle das Resultat der KM mitteilen
String resultat = String.format("%2d : %2d", tore1, tore2);
table.getModel().setValueAt(resultat, table.getSelectedRow(), table.getSelectedColumn());
table.getModel().setValueAt(tore1, table.getSelectedRow(), SPALTE_TORE_TEAM1); // Spalte Tore Team1 updaten, falls Spalte eingeblendet
table.getModel().setValueAt(tore2, table.getSelectedRow(), SPALTE_TORE_TEAM2); // Spalte Tore Team2 updaten, falls Spalte eingeblendet
((AbstractTableModel)table.getModel()).fireTableDataChanged();
}
};
table.getDefaultEditor(String.class).addCellEditorListener(changeNotification);
// im tableModel Ergebnisspalte als editierbar konfigurieren
@Override
public boolean isCellEditable(int row, int column) {
return (column == ERGEBNISSPALTE);
}
// das müsste es im Wesentlichen sein
Des Weiteren sind mir folgende kleinere Bugs/Mängel aufgefallen:
- Wenn man ein Turnier laden möchte und dann bei 'öffne Datei' auf Cancel/Abbrechen klickt, dann ist 'Wusch' die Kickermaschine weg.
- Das Vergrössern/Verkleinern der Schriften geht bei mir nur übers Menü: auf die Tasten + und - reagiert die KM nicht.
OS: Windows7 Java: Java(TM) SE Runtime Environment (build 1.7.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
- Das Schliessen des Programms über das X neben den Maximier- und Minimier-symbol scheint nicht vorgesehen zu sein.
mfg
Günther