Graphics -> Graphics2D etwas zu beachten?

Boikot

Mitglied
Hallo alle! Erste nachricht hier...

Ich lerne gerade Graphische Elemente zu programmieren. Mir Graphics g hat bisher alles geklappt, nun wenn ich elemente aus Graphics2D ersetze dann scheint das nicht zu funktionieren. Muss ich irgendwas beachten, werden sie nicht gleich angewandt?

Das ist der Code. Da wo Graphics2D steht, stand vorher nur Graphics, und da wo das Shape ist, war vorher einfach ein drawOval. Ich habs knallhart ersetzt, was muss ich beachten?

Java:
package proj;
import java.awt.Color;
import java.awt.geom.*;
import java.awt.Graphics2D;
import java.awt.Shape;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

public class proj extends JPanel{
  
public void paintComponent(Graphics2D g){
   super.paintComponent(g);
   g.setColor(Color.BLACK);
   Shape k1 = new Ellipse2D.Float(100.0f,100.0f,100.0f,100.0f);
   g.draw(k1);
  
}


public static void main(String[] args){
   proj t = new proj();
  
   JFrame jf = new JFrame();
   jf.setTitle("New JFrame");
   jf.setSize(800, 600);//breite, höhe
   jf.setVisible(true);
   jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   jf.add(t);
}
}
Danke im vorraus!
 
Zuletzt bearbeitet von einem Moderator:

Schmetterhand

Aktives Mitglied
Was genau ist dein Problem?
Ich denke, du mußt den AWT-Graphikkontext (Graphics) zum Java2D-Kontext (Graphics2D) casten:

Java:
@Override
public void paintComponent(Graphics graph0)
{
   super.paintComponent(graph0);
   Graphics2D graph = (Graphics2D) graph0;
   graph.setColor(Color.BLACK);
   Shape k1 = new Ellipse2D.Float(100.0f,100.0f,100.0f,100.0f);
   graph.draw(k1);
}
So hat es jedenfalls bei mir funktioniert.
 

Boikot

Mitglied
Sorry wegen Code-Tags :)

Keine fehlermeldung, es wird nur nichts im JFrame gezeichnet.
Danke Schmetterhand, das war es!!
Ich werd mich mal informieren was das genau macht, ich versteh es zwar nicht, aber es funktioniert :)
 

JCODA

Top Contributor
wenn du Graphics2D als Parameter in der Methode paintComponent verwendest, überschreibst du nicht mehr die ursprüngliche paintCopmonents(Graphics g), und erstellst eine komplett neue Methode, die niergends aufgerufen wird.
 

JCODA

Top Contributor
Jein, du fügst es damit einer internen Liste vom JFrame hinzu. Wenn das JFrame neu gezeichnet werden muss, ruft es bei jedem seiner Komponenten paintComponent() auf.
 

Boikot

Mitglied
Ah, verstehe... Danke nochmal für die Kentnisse, mit den würd ich nicht auf diese probleme kommen. Ich habe ein timer hinzugefügt, und möchte bei jedem tick eine berechnung durchführen und dementsprechend neu zeichnen. Jetzt hab ich das problem das er meckert, ich glaube ich habe es in der falschen Zeile hinzugefügt.

Kannst du drüber schauen ob du ein Fehler findest? Kurzfassung meines Ziels: Ein fixes massenpunkt (o), ein bewegliches massenpunkt(a). Je nach abstand(r) soll sich das bewegliche teil mehr oder weniger beschleunigen. Dafür muss ich bei jedem tick erstmal der abstand berechnen.


Code:
import java.awt.Color;
import java.awt.geom.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

public class Gravity extends JPanel implements ActionListener {

    private static final long serialVersionUID = 1L;
   
    public pkt i;
    public pkt j;
    public pkt res;
    private double uno;
    private double dos;
    private double betrag;
   
    Timer tm = new Timer(25,this);
    double grav = 2.0;
    double x = 20.0;
    double y = 500.0;
   
    double dx = 10.0;
    double dy = -10.0;
   
    double ddx = 0.0;
    double ddy = 0.0;
   
    double r;
    pkt o = new pkt(600.0,400.0);
    pkt a = new pkt(x,y);
    //double ret = o.ausx();
   
    //operate abs = new operate(o,a);
   
   

    @Override
public void paintComponent(Graphics graph0){
       
    super.paintComponent(graph0);
    Graphics2D graph = (Graphics2D) graph0;
    graph.setColor(Color.BLACK);
    Shape k1 = new Ellipse2D.Double(x,y,50.0,50.0);
    Shape origin = new Ellipse2D.Double(600.0,400.0,20.0,20.0);
    graph.draw(k1);
    graph.draw(origin);
    tm.start();
   
}

public void actionPerformed(ActionEvent e){
    r = abstand(o,a); //////////////////Diese Zeile ist das einzige Problem, wo soll sie hin?
    //dx = dx + ddx;
    x = x + dx;
    //dy= dy + ddy;
    y = y + dy;
   
    //System.out.println(r);
    repaint();
}

public static void main(String[] args){
    Gravity t = new Gravity();
   
    JFrame jf = new JFrame();
    jf.setTitle("New JFrame");
    jf.setSize(1200, 800);//breite, höhe
    jf.setVisible(true);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jf.add(t);
   
}

public double abstand(pkt i, pkt j){
    uno = i.x;
    dos = j.x;
    res.x = uno - dos;
   
    uno = i.y;
    dos = j.y;
    res.y = uno - dos;
   
    betrag = Math.sqrt(res.x*res.x+res.y*res.y);
    return betrag;
}

}

Ich weiß es ist ein Aufwand, tausend mal Danke!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Developer_X Swing Auf ein BufferedImage mit Graphics/Graphics2D zeichnen AWT, Swing, JavaFX & SWT 6
N Graphics Objekte scalen mit Veränderung des Bildschirms AWT, Swing, JavaFX & SWT 19
T Bild in ein graphics füllen AWT, Swing, JavaFX & SWT 2
volcanos Scrollen: JScrollPane mit Graphics g und Java-Fonts extends Frame ? AWT, Swing, JavaFX & SWT 5
DonBronson Java Graphics bewegbar machen (Drag&Drop) AWT, Swing, JavaFX & SWT 3
ExceptionOfExpectation MouseListener-Objekte zu den Graphics-Objekten einfügen AWT, Swing, JavaFX & SWT 3
R AWT Graphics initialisieren AWT, Swing, JavaFX & SWT 15
P JPanle, JFrame und Graphics AWT, Swing, JavaFX & SWT 2
R 2D-Grafik PNG Bild per Graphics auf JPanel AWT, Swing, JavaFX & SWT 9
B Graphics to Image AWT, Swing, JavaFX & SWT 3
T Swing Graphics auf Panel AWT, Swing, JavaFX & SWT 2
P ActionListener Graphics Einbauen AWT, Swing, JavaFX & SWT 0
J Swing Problem mit Graphics Methode AWT, Swing, JavaFX & SWT 4
R Swing Bewegung eines Graphics Objektes innerhalb eines JPanels funktioniert nicht richtig AWT, Swing, JavaFX & SWT 2
V Netbeans: TabbedPane, ScrollPane und Graphics AWT, Swing, JavaFX & SWT 4
V Graphics g - drawOval problem mit background AWT, Swing, JavaFX & SWT 1
M Graphics.fillOval AWT, Swing, JavaFX & SWT 1
javampir Sauberes Faden mit awt Graphics AWT, Swing, JavaFX & SWT 6
D 2D-Grafik Inhalt eines Graphics in anderes Graphics zeichnen.... AWT, Swing, JavaFX & SWT 3
X AWT Text der mit Graphics "drawString(...)" geschreiben wurde wieder löschen. AWT, Swing, JavaFX & SWT 6
C Zwei Ebenen in Graphics ? AWT, Swing, JavaFX & SWT 0
C Graphics Objekt in Zeitschleife zeichnen AWT, Swing, JavaFX & SWT 4
D Frage zu JFrame und Graphics AWT, Swing, JavaFX & SWT 4
I JavaFX Graphics Performance AWT, Swing, JavaFX & SWT 2
vodkaz Graphics aufrufen AWT, Swing, JavaFX & SWT 4
V 2D-Grafik Frage zum Graphics Objekt AWT, Swing, JavaFX & SWT 2
P 2D-Grafik NPE beim Zeichnen auf Graphics g AWT, Swing, JavaFX & SWT 8
M Graphics.drawImage von unten nach oben abbilden lassen AWT, Swing, JavaFX & SWT 6
F Probleme mit (Graphics g) II AWT, Swing, JavaFX & SWT 4
F Probleme mit (Graphics g) AWT, Swing, JavaFX & SWT 3
M JFrame Graphics.drawString Problem AWT, Swing, JavaFX & SWT 11
I Rechteck eines Graphics eines JPanels in einem anderen JPanel anzeigen AWT, Swing, JavaFX & SWT 7
antonbracke Multiplayer Shooter- Wie geht das mit Canvas & Graphics AWT, Swing, JavaFX & SWT 6
R Ankerpunkt bei Graphics AWT, Swing, JavaFX & SWT 3
R Fließende Bewegung von Graphics AWT, Swing, JavaFX & SWT 6
T AWT Graphics G Kein Text erscheint warum? AWT, Swing, JavaFX & SWT 12
L Graphics.drawImage() - Output-Größe entspricht nicht Parametern AWT, Swing, JavaFX & SWT 10
L Border verschwindet durch Graphics.drawImage() AWT, Swing, JavaFX & SWT 4
Furtano AWT paint braucht ein Graphics Objekt ? AWT, Swing, JavaFX & SWT 2
P "Graphics" wird nicht angezeigt AWT, Swing, JavaFX & SWT 11
L Graphics Objekt - aus anderer Klasse aufrufen / übergeben AWT, Swing, JavaFX & SWT 5
B Swing Zeilenumbruch in Graphics AWT, Swing, JavaFX & SWT 20
T Graphics zeichnet nicht AWT, Swing, JavaFX & SWT 2
T Applet graphics - zeichnen funktioniert nicht AWT, Swing, JavaFX & SWT 14
R Graphics-Object speichern AWT, Swing, JavaFX & SWT 4
S Zeichnen mit java.awt.Graphics AWT, Swing, JavaFX & SWT 6
D Graphics zeichnen AWT, Swing, JavaFX & SWT 6
M Graphics auf JFrame Koordinatensystem AWT, Swing, JavaFX & SWT 3
T Graphics Ersetzend Zeichnen AWT, Swing, JavaFX & SWT 6
S Unterscheiden ob ein Graphics-Objekt von einer JComponent oder einem BufferedImage kommt..? AWT, Swing, JavaFX & SWT 4
D Erzeugen eines leeren Graphics-Objektes AWT, Swing, JavaFX & SWT 7
B Anzeigefehler in GridBagLayout durch paintComponent(Graphics g) AWT, Swing, JavaFX & SWT 3
A AWT AWT Panelfenster mit Graphics kombinieren AWT, Swing, JavaFX & SWT 7
T Graphics Parameterübergabe AWT, Swing, JavaFX & SWT 3
K Graphics.drawImage() sehr schnell AWT, Swing, JavaFX & SWT 5
M Graphics-Objekt aktualisiert sich nicht AWT, Swing, JavaFX & SWT 2
N paintComponent für Graphics ansprechen AWT, Swing, JavaFX & SWT 2
M Graphics.drawImage verlangsamt sich plötzlich AWT, Swing, JavaFX & SWT 15
S Swing AWT (graphics (g)) AWT, Swing, JavaFX & SWT 27
E einfache Frage zu paintComponent und Graphics AWT, Swing, JavaFX & SWT 7
B Swing Tooltips auf Graphics AWT, Swing, JavaFX & SWT 8
Ä Graphics-Komponente auf JPanel wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
S Applet mit Graphics dynamisch vergrößern AWT, Swing, JavaFX & SWT 3
T Dialog ohne Frame, direktes paint in graphics AWT, Swing, JavaFX & SWT 5
T Swing Component in Graphics zeichnen AWT, Swing, JavaFX & SWT 4
J getFontMetrics außerhalb von paint(Graphics g) AWT, Swing, JavaFX & SWT 8
E Problem bzw. Sinn von Graphics / Graphics Context AWT, Swing, JavaFX & SWT 21
S Weder ActionListener noch Graphics wollen so recht AWT, Swing, JavaFX & SWT 3
F Methode drawOval(int,int,int,int) von graphics AWT, Swing, JavaFX & SWT 4
G Graphics Objekte in AWT Container einfügen AWT, Swing, JavaFX & SWT 2
S Mit Graphics g ins Fenster zeichnen AWT, Swing, JavaFX & SWT 4
G Graphics - Raute AWT, Swing, JavaFX & SWT 3
G "pinseldicke" bei Graphics? AWT, Swing, JavaFX & SWT 2
G Graphics.drawImage() AWT, Swing, JavaFX & SWT 6
D Methode Graphics g klassenübergreifend nutzen. AWT, Swing, JavaFX & SWT 3
W java.lang.NoClassDefFoundError: org/eclipse/swt/graphics/Dev AWT, Swing, JavaFX & SWT 1
B Graphics und Canvas - Problem AWT, Swing, JavaFX & SWT 2
H eigene paintComponent(Graphics) kommt mit rezise nicht klar AWT, Swing, JavaFX & SWT 6
T Transparenz bei Graphics AWT, Swing, JavaFX & SWT 9
L Graphics AWT, Swing, JavaFX & SWT 37
B JPanel#paintComponent(Graphics g) << flackert oO AWT, Swing, JavaFX & SWT 3
Y Problem mit der Referenz eines Graphics-Objekts AWT, Swing, JavaFX & SWT 5
O Graphics erstellt Componente scheinbar nicht richtig AWT, Swing, JavaFX & SWT 23
G 2x Graphics in einer paint() miteinander verbinden AWT, Swing, JavaFX & SWT 11
K Gutes Buch gesucht (Graphics Only) Kennt jemand eins? AWT, Swing, JavaFX & SWT 5
K Graphics-Objekt zeichnet nicht alle Bilder AWT, Swing, JavaFX & SWT 3
J Einmal gleichzeitig auf zwei Graphics malen? AWT, Swing, JavaFX & SWT 5
E Image, Graphics, verzögert zeichnen AWT, Swing, JavaFX & SWT 2
N Graphics Objekt "puffern" AWT, Swing, JavaFX & SWT 7
H neuzeichnen von graphics nach minimierung oder ähnlichem AWT, Swing, JavaFX & SWT 10
G SWT Graphics Zeichnung neu laden AWT, Swing, JavaFX & SWT 13
G SWT Graphics GC Problem AWT, Swing, JavaFX & SWT 6
M Abstrakte Graphics Klasse erzeugen AWT, Swing, JavaFX & SWT 2
H awt Graphics und Image selbermachen ? AWT, Swing, JavaFX & SWT 12
D Image aus Graphics erstellen? AWT, Swing, JavaFX & SWT 2
R Graphics Objekt ändern AWT, Swing, JavaFX & SWT 11
raptorrs J2D graphics, sind 500px immer 500 px AWT, Swing, JavaFX & SWT 2
G Graphics AWT, Swing, JavaFX & SWT 2
H Graphics: Schriftgröße ändern AWT, Swing, JavaFX & SWT 4
X Problem mit Image und Graphics AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben