Hallo Leute,
ich bin gerade dabei ein Sudoku zu programmieren, deswegen möchte ich eine Zeit und Punkteangabe programmieren. Ich bin schon soweit gekommen das ich mittels util.Timer einen Task starte. Dieser Task berechnet mir die Punkte und zählt einen Attribut, welches die Zeit darstellt, jede Sekunde höher. Jetzt möchte ich in meinem JLabel der GUI, die aktuellen Punkte und Zeitangaben, jede Sekunde updaten.
Die GUI ist ein GridLayout. In der Ersten Reihe ist ein JTable und in der Zweiten ein JButton, welche zu vernachläassigen ist. Wichtig ist in der Dritten Reihe das JLabel welches wie oben beschrieben funktionieren soll.
Oder anders: Solitare -> unten Rechts im Window Punkte und Zeit. Genau so möchte ich es haben =)
Das sieht wie folgt aus:
Hoffe auf baldige Hilfe
Mfg Burny
ich bin gerade dabei ein Sudoku zu programmieren, deswegen möchte ich eine Zeit und Punkteangabe programmieren. Ich bin schon soweit gekommen das ich mittels util.Timer einen Task starte. Dieser Task berechnet mir die Punkte und zählt einen Attribut, welches die Zeit darstellt, jede Sekunde höher. Jetzt möchte ich in meinem JLabel der GUI, die aktuellen Punkte und Zeitangaben, jede Sekunde updaten.
Die GUI ist ein GridLayout. In der Ersten Reihe ist ein JTable und in der Zweiten ein JButton, welche zu vernachläassigen ist. Wichtig ist in der Dritten Reihe das JLabel welches wie oben beschrieben funktionieren soll.
Oder anders: Solitare -> unten Rechts im Window Punkte und Zeit. Genau so möchte ich es haben =)
Das sieht wie folgt aus:
Java:
package timer_highscore;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridLayout;
import java.util.Timer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
public class TestFrame extends JFrame{
protected static final Frame TestFrame = null;
public String[][] rowData;
public String[] columnNames;
public JButton addData;
public JLabel label;
public Score score;
TestFrame(){
Timer timer = new Timer();
timer.scheduleAtFixedRate(new Score(Level.EASY), 1000, 1000);
setLayout(new GridLayout(3, 1));
String[][] rowData = {{ "Christian", "245" }, { "Sonja", "240" }, { "Sabine", "220" },
{ "Gerald", "217" }, {"Dustin", "0"} };
String[] columnNames = { "Name", "Score" };
final JTable table = new JTable( rowData, columnNames);
// JTable display properties
table.setAutoCreateRowSorter(true);
table.setAutoResizeMode(JTable.AUTO_RESIZE_NEXT_COLUMN);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setIntercellSpacing(new Dimension(0,0));
//JButton
JButton addData = new JButton("Add");
//Adding components to frame
JLabel label = new JLabel();
add( new JScrollPane(table));
add(addData);
add(label);
pack();
//Frame properties
setName("TestFrame");
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public void update(){
// score.run();
// label.setName("Score: " + String.valueOf(score.getPoints()) + " Time: " + String.valueOf(score.getTime()));
label.setName(String.valueOf(score.getPoints()));
}
public static void main(String args[]){
TestFrame tf = new TestFrame();
tf.update();
}
}
package timer_highscore;
import java.util.TimerTask;
public class Score extends TimerTask{
private int points = 0;
private int reducer = 0;
private int time = 0;
Score(){
}
Score(Level level){
if (level == Level.EASY){
points = 5000;
reducer = 5;
}else{
if (level == Level.MEDIUM){
points = 10000;
reducer = 10;
} else{
if (level == Level.DIFFICULT){
points = 15000;
reducer = 15;
} else{
points = 20000;
reducer = 20;
}
}
}
System.out.println(points);
}
public int getPoints(){
return points;
}
public int getTime(){
return time;
}
public void run(){
// Reducing points
points -= reducer;
// Time counting up each second
time += 1;
System.out.println("Score: "+points +" Time: "+ time);
}
}
Hoffe auf baldige Hilfe
Mfg Burny