Er gået i stå der hvor jeg skal have timeviseren til at rykke sig efter hvert minut, så den ikke kun rykker sig en gang i timen.
Jeg troede at det ville hjælpe at tage antal minutter, dividere dem med 60, og derefter dividere dem med 12, så når der var 60 minutter, svarede det til en time. Jeg kan bare ikke få det til at virke så håber i kan hjælpe.
import java.util.*;
import java.awt.*;
import javax.swing.*;
public class Analogur extends JPanel{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
GregorianCalendar netopNu = new GregorianCalendar();
int timer = netopNu.get(Calendar.HOUR);
int minutter = netopNu.get(Calendar.MINUTE);
int sekunder = netopNu.get(Calendar.SECOND);
int d = 150;
int r = d/2;
int radius = Math.min(getWidth() / 2, getHeight() / 2);
int centerX = getWidth()/2;
int centerY = getHeight()/2;
double inputTimer = 2 * Math.PI * timer/12 + (minutter/60/12) + Math.PI * 1.5;
double inputMinutter = 2 * Math.PI * minutter/60 + Math.PI * 1.5;
double inputSekunder = 2 * Math.PI * sekunder/60 + Math.PI * 1.5;
System.out.println("SEK "+inputSekunder);
System.out.println("Minut "+inputMinutter);
System.out.println("Time "+inputTimer);
int xTime = (int) (radius * Math.cos(inputTimer) + centerX);
int yTime = (int) (radius * Math.sin(inputTimer) + centerY);
int xMinut = (int) (radius * Math.cos(inputMinutter) + centerX);
int yMinut = (int) (radius * Math.sin(inputMinutter) + centerY);
int xSekund = (int) (radius * Math.cos(inputSekunder) + centerX);
int ySekund = (int) (radius * Math.sin(inputSekunder) + centerY);
g.setColor(Color.BLACK);
g.drawOval(centerX-radius, centerY-radius, radius*2, radius*2);
g.drawLine(centerX, centerY, xTime, yTime);
g.setColor(Color.BLUE);
g.drawLine(centerX, centerY, xMinut, yMinut);
g.setColor(Color.RED);
g.drawLine(centerX, centerY, xSekund, ySekund);
}
}