LEDControl/src/main/java/de/zuim/ledcontrol/effects/ClockEffect.java

48 lines
1.6 KiB
Java

package de.zuim.ledcontrol.effects;
import de.zuim.ledcontrol.LEDEffect;
import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import static de.zuim.ledcontrol.LEDControl.HEIGHT;
public class ClockEffect implements LEDEffect {
private Font font = new Font("Calibri", Font.BOLD, 12 * getScale());
private double posOffset = 3;
@Override
public String getDescription() {
return "LED Clock";
}
int iteration = 0;
public void fontSwitcher() {
if (++iteration % 100 == 0) {
Font[] allFonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
font = new Font(allFonts[iteration / 100].getFontName(), Font.PLAIN, 12 * getScale());
System.out.println(allFonts[iteration / 100].getFontName());
}
}
public void render(long timeDelta, Graphics g) {
//fontSwitcher();
Calendar time = Calendar.getInstance();
String text = new SimpleDateFormat("H:mm").format(time.getTime());
String text2 = new SimpleDateFormat("ss").format(time.getTime());
g.setFont(font);
g.setColor(Color.getHSBColor((time.get(Calendar.MINUTE)+time.get(Calendar.SECOND)/60f)/60f, 1f, 4f / 255f));
//g.setColor(new Color(0, 10 - date.getMinutes() / 6, date.getMinutes() / 6));
//posOffset-=(4*getScale()*timeDelta)/1000000000.0;
g.drawString(text, (int) posOffset, HEIGHT / 2 * getScale());
//g.setColor(new Color(10 - date.getSeconds() / 6, date.getSeconds() / 6, 0));
g.setColor(Color.getHSBColor((time.get(Calendar.SECOND)+time.get(Calendar.MILLISECOND)/1000f)/60f, 1f, 4f / 255f));
g.drawString(text2, 5, HEIGHT * getScale());
if (posOffset < -g.getFontMetrics().stringWidth(text))
posOffset = 0;
}
}