added durchschnittszeit angabe
parent
9625a02631
commit
b4d3ee05d6
|
@ -16,12 +16,16 @@ import java.io.OutputStreamWriter;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.time.DateTimeException;
|
import java.time.DateTimeException;
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.temporal.ChronoField;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.Stack;
|
import java.util.Stack;
|
||||||
import javax.swing.JButton;
|
import javax.swing.JButton;
|
||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
|
import java.time.format.DateTimeFormatterBuilder;
|
||||||
import de.hs_mannheim.informatik.mvn.gui.*;
|
import de.hs_mannheim.informatik.mvn.gui.*;
|
||||||
|
|
||||||
public class HitoriMain2 extends JFrame implements ActionListener{
|
public class HitoriMain2 extends JFrame implements ActionListener{
|
||||||
|
@ -260,6 +264,38 @@ public class HitoriMain2 extends JFrame implements ActionListener{
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static JLabel getAvgTime(byte[] data, String filename) throws IOException {
|
||||||
|
String text = "Durchschnittszeit: ";
|
||||||
|
int totalSeconds = 0;
|
||||||
|
int count = 0;
|
||||||
|
try (BufferedReader reader = new BufferedReader(
|
||||||
|
new InputStreamReader(new ByteArrayInputStream(data), StandardCharsets.UTF_8))) {
|
||||||
|
String line;
|
||||||
|
DateTimeFormatter dtf = new DateTimeFormatterBuilder()
|
||||||
|
.appendPattern("mm:ss") // we only have minutes and seconds
|
||||||
|
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0) // default hour = 0
|
||||||
|
.toFormatter();
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
line = line.trim();
|
||||||
|
if (line.isEmpty()) continue;
|
||||||
|
String[] parts = line.split("\\s+", 2);
|
||||||
|
String timePart = parts[0];
|
||||||
|
LocalTime localTime = LocalTime.parse(timePart, dtf);
|
||||||
|
int minutes = localTime.getMinute();
|
||||||
|
int seconds = localTime.getSecond();
|
||||||
|
int totalSecThisLine = minutes * 60 + seconds;
|
||||||
|
totalSeconds += totalSecThisLine;
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
int timeInt = totalSeconds/count;
|
||||||
|
int minutes = timeInt/60;
|
||||||
|
int seconds = timeInt%60;
|
||||||
|
String time= minutes+":"+seconds;
|
||||||
|
JLabel avgTime = new JLabel(text + time);
|
||||||
|
return avgTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class HighscoreEintrag {
|
class HighscoreEintrag {
|
||||||
|
|
|
@ -138,6 +138,8 @@ public class HighscoreGUI extends JFrame implements ActionListener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
highscorePanel1.add(entryPanel, BorderLayout.CENTER);
|
highscorePanel1.add(entryPanel, BorderLayout.CENTER);
|
||||||
|
JLabel avgTime = HitoriMain2.getAvgTime(data, filename);
|
||||||
|
highscorePanel1.add(avgTime, BorderLayout.NORTH);
|
||||||
} else {
|
} else {
|
||||||
JLabel text = new JLabel("Noch kein Highscore eingetragen.");
|
JLabel text = new JLabel("Noch kein Highscore eingetragen.");
|
||||||
highscorePanel1.add(text, BorderLayout.CENTER);
|
highscorePanel1.add(text, BorderLayout.CENTER);
|
||||||
|
|
Loading…
Reference in New Issue