AW: Analoguhr für eigene HP erstellen
Ok!!! Es sind drei Dateien.
AnalogUhr (Class-Datei)
Analoguhr (HTML-Dokument)
AnalogUhr (JAVA-Datei)
In der HTNL steht Folgendes:
<!-- - Analoguhr - Version 15.11.2003 -->
<html>
<head>
<title>Eine Analoguhr als Java-Applet</title>
<meta name="robots" content="noindex, nofollow">
</head>
<body>
<br>
<applet code="AnalogUhr.class" width="250" height="250"></applet>
</body>
</html>
wenn ich hier die Größe der Uhr ändere habe ich nur ein kleinen ausschnitt der Uhr und nicht mehr die ganze.
In der JAVA-Datei steht das:
// - AnalogUhr - Version 15.11.2003
import java.awt.*;
import java.applet.*;
import java.util.*;
public class AnalogUhr extends Applet {
public void init() {
setBackground(new Color(255,255,255));
}
Image buffer;
Graphics2D gBuffer;
Calendar date;
int nn=125, r=5; // Zentrum und Radius
public void paint(Graphics g) {
// Double-Buffering
if (buffer==null) {
buffer=createImage(this.getSize().width, this.getSize().height);
gBuffer=(Graphics2D)buffer.getGraphics();
}
gBuffer.clearRect(0,0,this.getSize().width, this.getSize().height);
// Antialiasing
gBuffer.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
gBuffer.setColor(new Color(0,0,0));
gBuffer.drawOval(nn-2,nn-2,4,4);
// Striche bei 3, 6, 9 und 12 Uhr
for (int i=0;i<4;i++) {
gBuffer.drawLine(nn+(int)((r-7)*Math.cos(Math.toRadians(90*i))),nn+(int)((r-7)*Math.sin(Math.toRadians(90*i))),nn+(int)(r*Math.cos(Math.toRadians(90*i))),nn+(int)(r*Math.sin(Math.toRadians(90*i))));
}
// Striche bei jeder Stunde
for (int i=0;i<12;i++) {
gBuffer.drawLine(nn+(int)((r-5)*Math.cos(Math.toRadians(30*i))),nn+(int)((r-5)*Math.sin(Math.toRadians(30*i))),nn+(int)(r*Math.cos(Math.toRadians(30*i))),nn+(int)(r*Math.sin(Math.toRadians(30*i))));
}
// Striche bei jeder Minute (optional)
// for (int i=0;i<60;i++) {
// gBuffer.drawLine(nn+(int)((r-2)*Math.cos(Math.toRadians(6*i))),nn+(int)((r-2)*Math.sin(Math.toRadians(6*i))),nn+(int)(r*Math.cos(Math.toRadians(6*i))),nn+(int)(r*Math.sin(Math.toRadians(6*i))));
// }
date = new GregorianCalendar();
int hours = date.get(Calendar.HOUR_OF_DAY);
int minutes = date.get(Calendar.MINUTE);
int seconds = date.get(Calendar.SECOND);
// Stunden
gBuffer.drawLine(nn,nn,nn+(int)(60*Math.cos(Math.toRadians(hours%12*30+minutes/2.0-90))),nn+(int)(60*Math.sin(Math.toRadians(hours%12*30+minutes/2.0-90))));
// Minuten
gBuffer.drawLine(nn,nn,nn+(int)(85*Math.cos(Math.toRadians(minutes*6-90))),nn+(int)(85*Math.sin(Math.toRadians(minutes*6-90))));
// Sekunden
gBuffer.setColor(new Color(170,170,170));
gBuffer.drawLine(nn,nn,nn+(int)(90*Math.cos(Math.toRadians(seconds*6-90))),nn+(int)(90*Math.sin(Math.toRadians(seconds*6-90))));
g.drawImage (buffer, 0, 0, this);
// Verzögerung
try {Thread.sleep(50);}
catch (InterruptedException e) {}
repaint();
}
public void update(Graphics g) {paint(g);}
}