Hi Leute,
ich wollte eine Rangliste mit SWT erstellen, in der die Daten aus einer Mysql-Datenbank ausgelesen werden sollen. Ich hab jetzt das Problem, das immer nur ein Wert ausgelesen wird.
Hier der Code:
Habt ihr ne Lösung? Hab es auch schon mit while(rs.next()) probiert, hat aber auch nicht geholfen.
MfG
Truth
ich wollte eine Rangliste mit SWT erstellen, in der die Daten aus einer Mysql-Datenbank ausgelesen werden sollen. Ich hab jetzt das Problem, das immer nur ein Wert ausgelesen wird.
Hier der Code:
Java:
import java.sql.*;
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
public class x {
static Display display = new Display();
static ResultSet rs[] = new ResultSet[100];
public static void main(String[] args) {
Shell shell = new Shell(display);
shell.setBounds(0,0,1365,725);
shell.setText("Rangliste");
shell.setBounds(0,0,1365,725);
shell.open();
Table table = new Table(shell, SWT.NONE);
table.setBounds(10,10,627,650);
table.setLinesVisible(true); table.setHeaderVisible(true);
TableColumn a = new TableColumn(table,SWT.CENTER);
a.setText("Platz");
a.setWidth(40);
TableColumn b = new TableColumn(table,SWT.LEFT);
b.setText("Name");
b.setWidth(160);
TableColumn c = new TableColumn(table,SWT.LEFT);
c.setText("Land");
c.setWidth(100);
TableColumn g = new TableColumn(table,SWT.CENTER);
g.setText("Punkte");
g.setWidth(75);
TableColumn d = new TableColumn(table,SWT.CENTER);
d.setText("Erste Plätze");
d.setWidth(75);
TableColumn e = new TableColumn(table,SWT.CENTER);
e.setText("Zweite Plätze");
e.setWidth(85);
TableColumn f = new TableColumn(table,SWT.CENTER);
f.setText("Dritte Plätze");
f.setWidth(75);
final TableItem[] a2 = new TableItem[2];
for (int i = 0; i <= 1; i++) {
a2[i] = new TableItem(table, SWT.NONE);
populateItem(a2[i]);
}
Button aktu = new Button(shell, SWT.BUTTON1);
aktu.setBounds(700,540,100,25);
aktu.setText("Aktualisieren");
aktu.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
for (int i = 0; i <= 1; i++) {
populateItem(a2[i]);
}
}
});
while (!shell.isDisposed()){
if (!display.readAndDispatch()){
display.sleep();
}}
}
static void populateItem(TableItem a1) {
try{
int[] platz = new int[3];
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/skialpin","root","limoneneis");
con.setReadOnly(true);
Statement stmt = con.createStatement();
for(int i = 0;i <= 1; i++){
rs[i] = stmt.executeQuery("Select name,lname,punkte,erster,zweiter,dritter from fahrer ORDER BY id ASC");
rs[i].next();
platz[i]= i+1;
if(platz[i] <= 10){
a1.setForeground(display.getSystemColor (SWT.COLOR_RED));
}
a1.setText(new String[] {""+platz[i],rs[i].getString(1)+" ",rs[i].getString(2)+"",rs[i].getInt(3)+"",rs[i].getObject(4)+"",rs[i].getObject(5)+"",rs[i].getObject(6)+""});
}
}catch(Exception e){
System.out.println("Es ist ein Fehler aufgetreten!"+e);
}
}
}
Habt ihr ne Lösung? Hab es auch schon mit while(rs.next()) probiert, hat aber auch nicht geholfen.
MfG
Truth