SWT Linie soll in Abhängigkeit der aktuellen Uhrzeit gezeichnet werden

Status
Nicht offen für weitere Antworten.

babuschka

Top Contributor
Hallo,

ich habe als Hintergrundbild eine Uhr. Die Uhrzeiger habe ich mit SWT gezeichnet. Jetzt möchte ich aller einer Minute die Linien neu zeichnen (mit dem QUARZ Framework) in Abhängigkeit der Uhrzeit (Zeiger sollen die aktuelle Zeit anzeigen). Wie realisiere ich das in Code?

Habe die Linien bisher so gezeichnet:

Java:
    shell.addPaintListener(new PaintListener() {
      public void paintControl(PaintEvent e) {
	e.gc.drawLine(230, 120, 197, 75);
        e.gc.drawLine(228, 120, 250, 182); 

      }
    });

Wie bekomme ich die Zeiger jetzt an die richtige Stelle (aktuelle Uhrzeit)??? :bahnhof:
 
Zuletzt bearbeitet von einem Moderator:

Schandro

Top Contributor
du brauchst ne Formel, um die Polarkoordinaten (Grad+länge) in normale Koordinaten (x+y) umzuwandeln.
 
S

SlaterB

Gast
anderenfalls (edit: auf Nebula bezogen): ein Thread kontrolliert die Logik, aktusiert alle x Minuten einen Wert und löst ein repaint() aus,
die paint-Methode berücksichtigt den aktuellen Stand und stellt diesen korrekt dar,

betrifft einige Einzelprojekte, Thread, Klassenattribute, mathematische Berechnungen zur Darstellung,
das kann man ja kaum alles verraten, da musst du ne Menge selber programmieren
 

babuschka

Top Contributor
Warum selber zeichnen ???
weil selber machen immer besser ankommt.

ich bin jetzt so vor gegangen...
ich berechne aus der aktuellen zeit den winkel zwischen den zeigern.
und darauß muss ich jetzt die linie für den zeiger zeichnen, nur weiß ich nicht wie.

angenommen ich hab einen winkel von 151°, 230 und 120 ist der mittelpunkt der uhr.

Code:
gc.drawLine(230, 120, 197, 75);         // Stundenzeiger
gc.drawLine(230, 120, 250, 182);      // Minutenzeiger

und nun!?
 
G

Gast2

Gast
weil selber machen immer besser ankommt.

haha so ein blödes geschwätz :D...
Dann schreib dir doch auch eine eigenes Toolkit ;), warum verwendest du SWT machs doch selber :lol:...

Nee mal Spaß beiseite es gibt schon so viele Componenten die alle frei sind, dann verwende die doch, da hast du immer noch genügend zum Programmieren keine Angst =)...
 
S

SlaterB

Gast
selber machen ist schon besser, aber dann nur 'und nun?'-fragen ist eher 'fremd machen lassen' ;)

Skizze aufmalen, rechtwinkliges Dreieck, sinus, cosinus?
ohne derartige Kenntnisse gehts nicht
 
G

Gast2

Gast
Naja warum selber machen wenn schon eine ausgereifte und geteste Componente gibt???:bahnhof:
Ist mit anderen libs auch so iText,swingx, JFreechart usw. Könnte man auch selber machen, aber weshalb denn????:L
Kann man die Zeit für was anderes inverstieren.
 

babuschka

Top Contributor
hihi, ja ihr habt ja recht. :D
hab das ganze jetzt so umgesetzt für den Stundenzeiger, dass ich mit den Koordinaten fest von zwölf uhr ausgehe und dann die linie für die aktuelle uhrzeit zeichne:

Code:
    Calendar cal = Calendar.getInstance();   
    int hours = cal.get(Calendar.HOUR);
    int minutes = cal.get(Calendar.MINUTE);

    //Winkelberechnung
    int winkelHours = hours * 30;
    double winkelMinutes = minutes * 0.5;
    int differenz = minutes * 6;
    double winkel = winkelHours + winkelMinutes - differenz;
           
    //Stundenzeiger
    int x = 230 - 230;
    int y = 60 - 120;
    
    double rad = Math.toRadians(winkel);
    double cos = Math.cos(rad);
    double sin = Math.sin(rad);
     
    final double newX = x  * cos + y * -sin;
    final double newY = x * sin + y * cos;
        
    //Uhrzeiger
    self.addPaintListener(new PaintListener() {
      public void paintControl(PaintEvent e) {
	e.gc.drawLine(230, 120, 230 + (int)newX, 120 + (int)newY);	//Stundenzeiger
      }
    });

ich glaub es funktioniert, zumindest zeigt es die 9 an. aber wenn ich paar minuten warte, ist der zeiger wieder stück vor der 9 :bahnhof:
 
Zuletzt bearbeitet von einem Moderator:

ARadauer

Top Contributor
Was ist jetzt das konkrete Problem?
Ich will eine Uhr in Java machen beinhaltete ein paar Themen...

also was brauchst du von uns?
Berechnung?
das Neuzeichnen?
Allgemein einen Rahmen für das Programm?
 
S

SlaterB

Gast
Naja warum selber machen wenn schon eine ausgereifte und geteste Componente gibt???:bahnhof:
Ist mit anderen libs auch so iText,swingx, JFreechart usw. Könnte man auch selber machen, aber weshalb denn????:L
Kann man die Zeit für was anderes inverstieren.
JFreeChart baue ich gerade nach, denn es erzeugt kein SVG,
oder wenn man Label positionieren möchte, Zeilenumbrüche, Schriftgrößen, Balken nach links/ rechts verschieben,
Anzeigefehler wie zu dichte Texte,
mir fallen jeden Tag tausend Dinge an JFreeChart auf, die mir nicht gefallen
und das ist noch ein begrenztes Thema,

wenn man dagegen völlig frei etwas in ein JPanel malen möchte kann man sich doch unmöglich auf vorgefertigte Komponenten verlassen,
was ist wenn die Uhr auf einem Glockenturm zu sehen sein soll, der sich dann in echten 3D im Kreis dreht?
was ist wenn die Uhr gespiegelt, verzehrt, bunt, mit einer Sonderdarstellungen unten links, oben links, oben rechts, unten rechts oder in der Mitte versehen werden soll?
es gibt tausende Modifikationen, die ein Standard nicht erreichen kann

wenn doch, dann supi,
aber eine einfache Linie mit sinus und cosinus auszurechnen ist doch kein Aufwand
 
S

SlaterB

Gast
> ich glaub es funktioniert, zumindest zeigt es die 9 an. aber wenn ich paar minuten warte, ist der zeiger wieder stück vor der 9

dein Code gibt kaum wieder, was nach ein paar Minuten passiert,
der Listener bezieht sich auf die finalen Variablen newX/ newY, sowas muss doch ständig neu berechnet werden,
 

babuschka

Top Contributor
ja das ständige neu berechnen kommt ja erst später. es geht ja erstmal nur darum, dass die zeiger an der richtigen position stehen, zu der zeit, zu der das programm gerade aufgerufen wurde. und der stundenzeiger, den ich bis jetzt nur berechnet hab. steht nicht an der richtigen stelle. da müsste mir ja einer von euch sagen können, wo der fehler ist, hoffe ich zumindest.
 
S

SlaterB

Gast
hmm, die Winkelberechnung verstehe ich gar nicht,
rechne doch paar Winkel aus und vergleiche sie mit einer auf Papier gemalten Uhr,
jetzt um 9.54 ist der Winkel gar negativ, bei 54 * 6 für differenz ist es fast egal, welche Stunde gerade ist

x und y sind auch komisch, ein rechtwinkliges Dreieck hat nur eine längste Seite, nur einen Radius des Kreises, für die Sinus + Cosinus-Berechnung,
ohne Skizzen/ Mathematik geht gar nix

kreis sinus - Google-Suche
->
Sinus - Sinusfunktion
 
G

Gast2

Gast
JFreeChart baue ich gerade nach, denn es erzeugt kein SVG,
oder wenn man Label positionieren möchte, Zeilenumbrüche, Schriftgrößen, Balken nach links/ rechts verschieben,
Anzeigefehler wie zu dichte Texte,
mir fallen jeden Tag tausend Dinge an JFreeChart auf, die mir nicht gefallen
und das ist noch ein begrenztes Thema,

wenn man dagegen völlig frei etwas in ein JPanel malen möchte kann man sich doch unmöglich auf vorgefertigte Komponenten verlassen,
was ist wenn die Uhr auf einem Glockenturm zu sehen sein soll, der sich dann in echten 3D im Kreis dreht?
was ist wenn die Uhr gespiegelt, verzehrt, bunt, mit einer Sonderdarstellungen unten links, oben links, oben rechts, unten rechts oder in der Mitte versehen werden soll?
es gibt tausende Modifikationen, die ein Standard nicht erreichen kann

wenn doch, dann supi,
aber eine einfache Linie mit sinus und cosinus auszurechnen ist doch kein Aufwand

Klar wenn du Sachen willst die darüber hinaus gehen bleibt dir nichts anderes übrig, aber ich konnte nicht erkennen dass der TO etwas will was es nicht schon gibt...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JavaFX Diagonale Linie nicht ausgegeben/angezeigt AWT, Swing, JavaFX & SWT 1
G Linie mit der Maus auswählen AWT, Swing, JavaFX & SWT 5
G JavaFX Line Chart mit Farbverlauf/Gradient in Linie AWT, Swing, JavaFX & SWT 1
L 2D-Grafik Linie von Kreis zu Kreis AWT, Swing, JavaFX & SWT 3
J 2D-Grafik Linie wird nach Mausklick nicht am richtigen Ort gezeichnet AWT, Swing, JavaFX & SWT 11
K JavaFX Linie immer in der Mitte der Szene halten AWT, Swing, JavaFX & SWT 12
L JavaFX Horizontale Linie zur Scene binding AWT, Swing, JavaFX & SWT 3
3 2D-Grafik BasicStroke dash pattern - Linie zu lang!? AWT, Swing, JavaFX & SWT 1
I Text zur Linie zeichnen AWT, Swing, JavaFX & SWT 1
I Pfeil zeichnen am Ende einer Linie AWT, Swing, JavaFX & SWT 1
javampir Kubische Interpolation einer Linie AWT, Swing, JavaFX & SWT 5
C AWT Horizontale Linie in einem Panel AWT, Swing, JavaFX & SWT 12
B Linie zwischen 2 Elementen AWT, Swing, JavaFX & SWT 5
propra Auf einem JPanel gezeichnete Linie auswählen AWT, Swing, JavaFX & SWT 3
Gossi 2D-Grafik Linie erweitern? AWT, Swing, JavaFX & SWT 10
V Linie mit Länge und Bogenmaß AWT, Swing, JavaFX & SWT 3
J 2D-Grafik Linie hat Löcher AWT, Swing, JavaFX & SWT 10
P 2D-Grafik Neue Farbe für einen Teilbereich einer Linie? AWT, Swing, JavaFX & SWT 8
K 2D-Grafik Linie verschwindet beim Zeichnen AWT, Swing, JavaFX & SWT 10
I Schrift und Farbe formatieren, und zwar pro Linie... AWT, Swing, JavaFX & SWT 4
C Swing JTable: Horizontale Linie bei einzelnen Zellen ausblenden AWT, Swing, JavaFX & SWT 5
G SWT Linie unter transparentes Canvas zeichnen AWT, Swing, JavaFX & SWT 4
M Labels in ScrollPane mit Linie verbinden AWT, Swing, JavaFX & SWT 2
R JPanel - zeichnen in skalierten Bereich - Linie (X-Achse) nicht sichtbar AWT, Swing, JavaFX & SWT 11
J Swing - ich sehe keine Linie, andere schon AWT, Swing, JavaFX & SWT 6
S JXTaskPane und gepunktete Linie AWT, Swing, JavaFX & SWT 2
G SWT Linie AWT, Swing, JavaFX & SWT 13
F Rahmen mit gestrichelter Linie zeichnen AWT, Swing, JavaFX & SWT 4
G Linie nach Höhe einer Zahl zeichnen? AWT, Swing, JavaFX & SWT 3
M Linie zwischen JComponents AWT, Swing, JavaFX & SWT 5
T Linie langsam zeichnen AWT, Swing, JavaFX & SWT 3
L Linie mit drawLine auf JPanel AWT, Swing, JavaFX & SWT 7
A gezeichnete Linie verschwindet, wenn ich JMenuBar öffne AWT, Swing, JavaFX & SWT 2
S Problem mit dem Zeichnen einer Linie auf einem JPanel AWT, Swing, JavaFX & SWT 30
TheJavaKid Kreis, Rechteck, Linie. verschieben AWT, Swing, JavaFX & SWT 5
Student "Dicke" einer Linie - Line2D.Double AWT, Swing, JavaFX & SWT 12
R drawLine gibt hässliche linie AWT, Swing, JavaFX & SWT 4
T Vertikale Linie abgeschnitten AWT, Swing, JavaFX & SWT 2
C Linie in einem JLabel AWT, Swing, JavaFX & SWT 14
G linie / vektor zeichnen AWT, Swing, JavaFX & SWT 2
K Linie wird falsch auf Panel gezeichnet AWT, Swing, JavaFX & SWT 11
M JButtons mit Linie verbinden AWT, Swing, JavaFX & SWT 4
M Vokabelprogram - Schleife für Liste soll schrittweise durchlaufen werden AWT, Swing, JavaFX & SWT 3
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
berserkerdq2 Mein Rechteck hat 4 Seiten, ich soll je nach dem, welche Seite berührt wurde, etwas ausführen, wie prüfe ich das? AWT, Swing, JavaFX & SWT 12
Zeppi Swing Button soll Spiel zurücksetzen AWT, Swing, JavaFX & SWT 5
A Titelleiste soll Pfad ausgeben AWT, Swing, JavaFX & SWT 16
G Eintrag soll nur einmal in Listview zu sehen sein AWT, Swing, JavaFX & SWT 3
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
W JavaFX CSS - was soll mir das sagen? AWT, Swing, JavaFX & SWT 2
D JavaFX Menu soll nicht bei jedem Click verschwinden AWT, Swing, JavaFX & SWT 8
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
O Soll ich einen JEditorPane verwenden ? AWT, Swing, JavaFX & SWT 5
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
S JavaFX Node soll auch nach Skalierung zentriert platziert sein AWT, Swing, JavaFX & SWT 3
T JavaFX Dialog schließt ohne dass es schließen soll AWT, Swing, JavaFX & SWT 1
W Javafx - Image soll sich mit der Camera mitbewegen AWT, Swing, JavaFX & SWT 1
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
A Swing GUI - Button soll Frame verändern AWT, Swing, JavaFX & SWT 4
T Frage zu GUI - Button soll Objekt erfassen AWT, Swing, JavaFX & SWT 2
L Swing JButton soll link öffnen AWT, Swing, JavaFX & SWT 1
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
S Zwei JTree, ein Model, bei Selection im ersten JTree soll der zweite die Inhlate anzeigen AWT, Swing, JavaFX & SWT 2
M JavaFX StackedBarChart y-Axis soll nur Integerwerte anzeigen AWT, Swing, JavaFX & SWT 1
A Slider soll einen Wert übergeben AWT, Swing, JavaFX & SWT 1
P JavaFX Slider soll Value erst ab einer bestimmten Bedinung aendern AWT, Swing, JavaFX & SWT 19
krgewb AWT JFrame soll sich wie Dialog verhalten AWT, Swing, JavaFX & SWT 9
V JScrollBar soll weiterscrollen, wenn Inhalt von JTextArea erweitert wird AWT, Swing, JavaFX & SWT 7
V Swing Button soll unter anderem Button sein AWT, Swing, JavaFX & SWT 2
P Fenstergröße ändern, Panel soll gleich bleiben AWT, Swing, JavaFX & SWT 2
F JavaFX Timeline Animation soll X- und Y-Position während Animation ändern AWT, Swing, JavaFX & SWT 2
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
T MausClick soll TExt ändern AWT, Swing, JavaFX & SWT 6
J JavaFX Tabelle soll ganze Seite ausfüllen AWT, Swing, JavaFX & SWT 2
D Swing Schließen von JDialog soll auch JFrame schließen. AWT, Swing, JavaFX & SWT 4
T SWT SWTBot Test: Dialog soll sich öffnen,wenn button gedrückt AWT, Swing, JavaFX & SWT 3
T SWT Button soll nur sichbar sein,wenn im Textfeld der Focus ist AWT, Swing, JavaFX & SWT 4
J ActionListener soll auf paint() Methode zugreifen AWT, Swing, JavaFX & SWT 1
C 2D Grafik ein Bild soll permanent durchlaufen AWT, Swing, JavaFX & SWT 2
windl Warum soll ich zu JavaFX? AWT, Swing, JavaFX & SWT 18
H Java3D, ViewP Translattform soll sich nach einerformgroup richten. AWT, Swing, JavaFX & SWT 5
S Hauptfenster soll geöffnet bleiben AWT, Swing, JavaFX & SWT 4
M JDialog soll JFrame "blockieren" AWT, Swing, JavaFX & SWT 2
D Image soll langsam sichtbar werden AWT, Swing, JavaFX & SWT 4
F Swing JTextfield Beispieltext soll nach Klick verschwinden AWT, Swing, JavaFX & SWT 3
TheJavaKid DocumentListener soll Text in JTextField ändern AWT, Swing, JavaFX & SWT 4
J Zwei GUIs - Nach button-Klick soll ein Wert an die andere GUI übergeben werden AWT, Swing, JavaFX & SWT 15
J Swing String soll als Variable dienen AWT, Swing, JavaFX & SWT 11
M EditorPane Inhalt anders als er soll! AWT, Swing, JavaFX & SWT 2
C LayoutManager Grafik soll nicht im GridLayout Skalieren AWT, Swing, JavaFX & SWT 3
M Swing ActionEvent soll von Anderem ActionEvent abhängen AWT, Swing, JavaFX & SWT 3
J Button soll nach Klick Text ändern und Programm in 3 Sekunden beenden AWT, Swing, JavaFX & SWT 6
H Swing Button Klick soll "Untermenü-Buttons" erzeugen AWT, Swing, JavaFX & SWT 2
Z Swing JPanel soll größer werden als Parent Container (überlappen) AWT, Swing, JavaFX & SWT 5
D Swing jSlider soll selber weiterwandern, je nach zeit der musik AWT, Swing, JavaFX & SWT 5
A SWT Tooltip soll nicht verschwinden, solange User mit Maus auf Control ist AWT, Swing, JavaFX & SWT 5
D Swing JProgressBar soll ende erkennen AWT, Swing, JavaFX & SWT 4
S JVM von Oracle/Sun soll für AWT/SWING Elemente die die Optimierungen der NVidia Treiber verwenden AWT, Swing, JavaFX & SWT 3
J Swing JDialog blokiert mehrere JFrames - soll aber nur den aufrufenden blockieren AWT, Swing, JavaFX & SWT 4
N Applet JButton soll html Datei aus einem Ordner öffnen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben