Já potřebuju aby JTable se objevila už seřazená dle skore.(Highscore)
Případně jsem nahrál sem(pak to bude hned jasné): http://www.uloz.to/xGwGnmD/src-zip
Je to spustitelné a fční, jen třeba upravit cestu k souboru.
Mám txt, např.:
Ovechkin 949
Malkin 747
Hemský 848
Třídu Score - s konstruktorem(String jmeno & int skore), gety a sety.Třídu SkoreNacitac - kterou jsem si vypůjčil od Tebe - MotorkaParser.
Třídu: OknoNoveSkore - GUI + po zmáčknutí tlačítka => se zapíše zapsané jméno a skore na novy radek v txt.
Třídu OknoVysledkuSkore:
public class OknoVysledkuSkore extends JFrame {
private JTable tabulka = new JTable();
public OknoVysledkuSkore() {
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
tabulka.setModel(new ModelSkore());
JScrollPane pane = new JScrollPane(tabulka);
getContentPane().add(pane);
tabulka.setShowVerticalLines(true);
tabulka.setShowHorizontalLines(true);
pack();
setVisible(true);
setTitle ("Nejvyšší skóre");
setSize(400, 300);
}
public static void main(String[] args) {
new OknoVysledkuSkore();
new OknoNoveSkore();
}
}
Další třída: ModelSkore nastavuje obsah OknoVysledkuSkore .package grafika;
import ...
public class ModelSkore extends AbstractTableModel {
public static final int HRAC_INDEX = 0;
public static final int SKORE_INDEX = 1;
protected Vector<Skore> dataVector;
public ModelSkore() {
dataVector = SkoreNacitac.parseFile("D:/score.txt"); //WTF - relativní ?...
}
public String getColumnName(int sloupec) {
switch (sloupec) {
case 0:
return "Jméno";
case 1:
return "Skóre";
default:
return "";
}
}
public boolean isCellEditable(int radek, int sloupec) {
return false;
}
public Class getColumnClass(int sloupec) {
switch (sloupec) {
case HRAC_INDEX:
return String.class;
case SKORE_INDEX:
return Integer.class;
default:
return Object.class;
}
}
public Object getValueAt(int radek, int sloupec) {
Skore skore12 = dataVector.get(radek);
switch (sloupec) {
case HRAC_INDEX:
return skore12.getJmenoHrace();
case SKORE_INDEX:
return skore12.getHracovoSkore();
default:
return new Object();
}
}
public int getRowCount() {
/*
if(dataVector.size() > 10){
dataVector.setSize(10);
}
*/
return dataVector.size();
}
public int getColumnCount() {
return 2;
}
public boolean hasEmptyRow() {
return false;
}
public void addEmptyRow() {
dataVector.add(new Skore("", 0));
fireTableRowsInserted(dataVector.size() - 1, dataVector.size() - 1);
}
public void setridSkore() {
;
}
}
M.