zeichnen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo
nachdem mir hier schon im layout geholfen wurde steh ich nun am nächsten problem
Ich möchte zeichnen

Code:
package javaapplication1;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

 import java.awt.event.*;

public class Gui extends JFrame{  
    public Gui() {
        super("Mein Programm");
        
        setDefaultCloseOperation( EXIT_ON_CLOSE);
        
        JPanel kontrollpanel=new JPanel();
        JLabel lbeschriftung=new JLabel("Eingabe");
        JTextField tfeingabe=new JTextField(10);
        JButton beinfuegen=new JButton("einfügen");
        JButton bloeschen=new JButton("löschen");
        JButton bbalance=new JButton("löschen2");
        JButton bbloschen=new JButton("alles löschen");
        
       
        
        kontrollpanel.setLayout(new FlowLayout(FlowLayout.LEFT,20,20));
        
        kontrollpanel.add(lbeschriftung);
        kontrollpanel.add(tfeingabe);
        kontrollpanel.add(beinfuegen);
        kontrollpanel.add(bloeschen);
        kontrollpanel.add(bbalance);
        kontrollpanel.add(bbloschen);
        
        

        
        JPanel pzeichnen=new JPanel();
        pzeichnen.add(new TestCanvas());
        

        
        JLabel lstatus=new JLabel("Statuslabel");
        
        JPanel pgui=new JPanel();
        pgui.setLayout(new BorderLayout());
        pgui.add("North", kontrollpanel);
        pgui.add("Center", pzeichnen);
       pgui.add("South", lstatus);
       
           Container contents = getContentPane();
            contents.add(pgui);
            
            
            
        pack();
      
    }
    
    
    

     
     
    public static void main(String[] args)
    {
      Gui g=new Gui();
        g.setSize(1000 , 800);
        g.show();
    }
    
   
    
}

class TestCanvas extends Canvas
        
{    
             public void paint(Graphics g)
    {
    int i;
    int x = 200;
 
         for (i=0; i<60; ++i) {
             g.drawLine(x,200,x,400);
             x += 1+3*Math.random();
            }
    }
  
}


Ich habe vor in dem Panel pzeichen einfach ein bissl rumzuzeichnen. Dazu hab ich mir gedacht das es erforderlich ist ein Canvas zu initalisieren hab das oben auch versucht.
Was ich nun nich ganz verstehe ist wie lasse ich nun zeichne. Wie rufe ich die paint methode vom meinem Konstrultor im gui auf und wie definier bzw übergebe ich xy koordinaten.
(Wenn ich kein canvas verwende sonder nur eine paint methode wird direkt gezeichnet aber meine anderen elemte im gui werden nicht mehr angezegit 8( )

Danke und Grüsse
 

Sky

Top Contributor
Versuch mal anstatt Canvas ein JComponent. Wenn's dann geht, dann such mal im Forum, warum man AWT und Swing nicht mischen sollte ...
 
G

Guest

Gast
JComponent funktioniert auch
aber es wird nichts gemalt.
Ich weiss nich wie ich in meiner Gui class befehle an die draw methoden geben kann.
Wenn ich nur eine Klasse schreibe und implementiere die paint methode zeichnet er sofort(aber glaube gelesen zu haben nur auf das frame) . Ich möchte jedoch nur in das Panel zeichnen malen.
Es muss doch irgendwie möglich sein von Konstruktor von meiner KLasse Gui ganz einfach ein paar werte an die draw MEthode weiterzugeben damit diese im Panel zeichnen zeichent 8(


Grüsse
 

Slava

Bekanntes Mitglied
JComponent ist eine abstracte Classe
Sky hat,glaube ich, abgeleitete classen gemeint z.b.s JPanel.
wenn du paint methode von JPanel überschreibst dann muss es funktionieren.
 

Mag1c

Top Contributor
Also,

ich habe gerade den TestCanvas von oben in ein JFrame gepackt und bei mir zeichnet er was.
Laß doch mal das "pgui" weg:

Code:
Container contents = getContentPane(); 
contents.setLayout(new BorderLayout()); 
contents.add("North", kontrollpanel); 
contents.add("Center", pzeichnen); 
contents.add("South", lstatus);

Gruß
Mag1c
 
G

Guest

Gast
Danke fuer eure Hilfe

Code:
package javaapplication1;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

 import java.awt.event.*;

public class Gui extends JFrame{  
    public Gui() {
        super("Mein Programm");
        
        setDefaultCloseOperation( EXIT_ON_CLOSE);
        
        JPanel kontrollpanel=new JPanel();
        JLabel lbeschriftung=new JLabel("Eingabe");
        JTextField tfeingabe=new JTextField(10);
        JButton beinfuegen=new JButton("einfügen");
        JButton bloeschen=new JButton("löschen");
        JButton bbalance=new JButton("löschen2");
        JButton bbloschen=new JButton("alles löschen");
        
       
        
        kontrollpanel.setLayout(new FlowLayout(FlowLayout.LEFT,20,20));
        
        kontrollpanel.add(lbeschriftung);
        kontrollpanel.add(tfeingabe);
        kontrollpanel.add(beinfuegen);
        kontrollpanel.add(bloeschen);
        kontrollpanel.add(bbalance);
        kontrollpanel.add(bbloschen);
        
        

        
        JPanel pzeichnen=new JPanel();
        pzeichnen.add(new TestCanvas());
        

        
        JLabel lstatus=new JLabel("Statuslabel");
        
     
       
       
       Container contents = getContentPane();
          contents.setLayout(new BorderLayout()); 
            contents.add("North", kontrollpanel); 
            contents.add("Center", pzeichnen); 
            contents.add("South", lstatus);
            
            
            
        pack();
      
    }
    
    
    

     
     
    public static void main(String[] args)
    {
      Gui g=new Gui();
        g.setSize(1000 , 800);
        g.show();
    }
    
 
    
}

class TestCanvas extends Canvas  //Bzw JComponent
        
{    
             public void paint(Graphics g)
    {
    int i;
    int x = 200;
 
         for (i=0; i<60; ++i) {
             g.drawLine(x,200,x,400);
             x += 1+3*Math.random();
            }
    }
  
}

So passier leider auch nichts
Wie genau ich die paint Methode überschreiben/bzw aufrufen muss das weiss ich nich. Darin liegt mein Problem. Ich habe nur die Feststellung gemacht, dass wenn ich eine paint Methode in einer Klasse implementiere er mein Gui nicht mehr richitg aufbaut(grund ist wohl weil er nur auf dem Frame zeichnet)
 

Mag1c

Top Contributor
Oh, sorry,

mein Änderungsvorschlag war nicht vollständig. Ich wollte ja das extra Panel rausschmeißen. Also:

Code:
contents.add("Center", new TestCanvas());

Gruß
Mag1c
 
G

Guest

Gast
Dank dir das funktioniert!!!!

Jetzt steh ich nur noch vor dem problem, dass ich sozusagen nicht mit der paint methode(einmalig) zeichnen möchte sondern vlt auch später zur laufzeit.
also einfach ein g.drawline(x,y,x1,y2) absetzten und es wird dann gezeichnet =/

Grüsse
 
G

Guest

Gast
hab mal ein bisschen rumprobiert.
So in diesem Stil würd ich gerne zeichnen nur funktioniert das natürlich nich wenn ich werte übergeben möchte :-(
Code:
package javaapplication1;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import java.awt.event.*;

public class Gui extends JFrame{
    public Gui() {
        super("Mein Programm");
        
        setDefaultCloseOperation( EXIT_ON_CLOSE);
        
        JPanel kontrollpanel=new JPanel();
        JLabel lbeschriftung=new JLabel("Eingabe");
        JTextField tfeingabe=new JTextField(10);
        JButton beinfuegen=new JButton("einfügen");
        JButton bloeschen=new JButton("löschen");
        JButton bbalance=new JButton("löschen2");
        JButton bbloschen=new JButton("alles löschen");
        
        
        
        kontrollpanel.setLayout(new FlowLayout(FlowLayout.LEFT,20,20));
        
        kontrollpanel.add(lbeschriftung);
        kontrollpanel.add(tfeingabe);
        kontrollpanel.add(beinfuegen);
        kontrollpanel.add(bloeschen);
        kontrollpanel.add(bbalance);
        kontrollpanel.add(bbloschen);
        
        
        
        
        JPanel pzeichnen=new JPanel();
        
        
        
        
        JLabel lstatus=new JLabel("Statuslabel");
        
        
        Kreis k=new Kreis();
        Graphics g=k.getGraphics();
        k.setWerte(400,400,20,20);
        k.repaint(g);
        
        
        Container contents = getContentPane();
        contents.setLayout(new BorderLayout());
        contents.add("North", kontrollpanel);
        contents.add("Center", k);
        contents.add("South", lstatus);
        
        
        pack();
        
    }
    
    
    
    
    
    
    public static void main(String[] args) {
        Gui g=new Gui();
        g.setSize(1000 , 800);
        g.show();
        
    }
    
    
    
}

class Kreis extends Canvas  //Bzw JComponent
        
{
    
    int x1;
    int x2;
    int y1;
    int y2;
    public void setWerte(int Wert1,int Wert2, int Wert3, int Wert4)
    {
    x1=Wert1;
    x2=Wert2;
    y1=Wert3;
    y2=Wert4;
    }
    public void paint(Graphics g) {
        
        
        //g.drawLine(200,200,200,300);
       // g.drawOval(400,400,20,20);
        
        
    }
    public void repaint(Graphics g)
    {
    g.drawLine(x1,x2,y1,y2);
    }
    
    
    
    
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J SWING UI Designer und zeichnen Java Basics - Anfänger-Themen 4
luggas89 Mit Jframe live zeichnen Java Basics - Anfänger-Themen 4
K 3D Fläche Zeichnen Java Basics - Anfänger-Themen 2
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
R Iterativ zeichnen Java Basics - Anfänger-Themen 1
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
KogoroMori21 Mit einer Schleife eine Treppe zeichnen Java Basics - Anfänger-Themen 29
V Speicherzustand zeichnen Java Basics - Anfänger-Themen 0
O Klappt nicht: Ein Panel neu zeichnen Java Basics - Anfänger-Themen 3
CptK Interface Bilder mit Graphics g zeichnen Java Basics - Anfänger-Themen 7
B Java JFrame zeichnen Java Basics - Anfänger-Themen 4
Mosquera f(x)=x² zeichnen Java Basics - Anfänger-Themen 5
J Graphen in Java zeichnen Java Basics - Anfänger-Themen 11
L Anfängerin möchte Linie zeichnen Java Basics - Anfänger-Themen 8
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
S Zeichnen mit Wiederholungen Java Basics - Anfänger-Themen 12
B Wie kann ich Linien rekursiv zeichnen? Java Basics - Anfänger-Themen 4
P Einen String mittig zeichnen? Java Basics - Anfänger-Themen 1
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
W Wie kann ich in Java eine Kurve aus Punkten zeichnen? Java Basics - Anfänger-Themen 25
snipesss Linie zeichnen ohne extra Klasse? Java Basics - Anfänger-Themen 3
C Umrisse von Bilddateien mithilfe Polygonen zeichnen Java Basics - Anfänger-Themen 5
G Aus einem Code ein Sequenzdiagramm zeichnen? Java Basics - Anfänger-Themen 1
K Rechtecke rekursiv zeichnen Java Basics - Anfänger-Themen 20
V Quadrate rekursiv zeichnen Java Basics - Anfänger-Themen 7
B Java Graphen zeichnen - Brauche Hilfe Java Basics - Anfänger-Themen 9
C Schleifenaufgabe - Molekül zeichnen Java Basics - Anfänger-Themen 6
K Ungenauigkeit beim Zeichnen von Funktionen Java Basics - Anfänger-Themen 6
H Linie zeichnen... Java Basics - Anfänger-Themen 16
N Treppe zeichnen Java Basics - Anfänger-Themen 1
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
P Shape Zeichnen klappt nicht - einlesen der Breite/Höhe schon Java Basics - Anfänger-Themen 1
M in Java zeichnen Java Basics - Anfänger-Themen 2
J JLabel Icon neu zeichnen Java Basics - Anfänger-Themen 2
J Rechteck zeichnen mit Canvas Java Basics - Anfänger-Themen 7
D Zeichnen, Schleifen Java Basics - Anfänger-Themen 7
S Zeichnen , Schleifen Java Basics - Anfänger-Themen 4
S Rechteck zeichnen Java Basics - Anfänger-Themen 2
S Ein Graphics Obejct mehrmals mit denselben Eigenschaften zeichnen lassen?!?!? Java Basics - Anfänger-Themen 4
S Wo beginnt ein Draw String zu zeichnen. Java Basics - Anfänger-Themen 4
S Paint Anwendung: Freihandlinien zeichnen Java Basics - Anfänger-Themen 4
llabusch Layout neu zeichnen lassen Java Basics - Anfänger-Themen 2
A Histogramm zeichnen Java Basics - Anfänger-Themen 2
S Punkt in Java zeichnen Java Basics - Anfänger-Themen 14
E Dreieck zeichnen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
T Baum mit Turtle zeichnen Java Basics - Anfänger-Themen 2
C Hilfe beim Zeichnen Java Basics - Anfänger-Themen 8
D Haus zeichnen Java Basics - Anfänger-Themen 4
K Methoden Objekt auf JFrame zeichnen Java Basics - Anfänger-Themen 16
H 27 Kreise Zeichnen Java Applet Java Basics - Anfänger-Themen 2
S Problem mit "Zeichnen auf Kommando" Java Basics - Anfänger-Themen 2
M Double Punkte Zeichnen Java Basics - Anfänger-Themen 7
S Funktionen zeichnen Java Basics - Anfänger-Themen 2
2 Bild auf JApplet zeichnen Java Basics - Anfänger-Themen 18
R 2D Grafik zeichnen Java Basics - Anfänger-Themen 4
F Line zeichnen und Werte ändern Java Basics - Anfänger-Themen 6
B Grafik zeichnen Java Basics - Anfänger-Themen 25
B Erste Schritte Weihnachtsbaum zeichnen Java Basics - Anfänger-Themen 6
N Per Button Kreis zeichnen Java Basics - Anfänger-Themen 8
T mehrere Punkte zeichnen ohne löschung Java Basics - Anfänger-Themen 4
J Für 3 Sekunden etwas bestimmtes zeichnen Java Basics - Anfänger-Themen 8
C Kreis nach Mausklick zeichnen Java Basics - Anfänger-Themen 5
C Auf Button-Druck zeichnen Java Basics - Anfänger-Themen 2
R Methoden Zeichnen auf Button-Druck durch Paint-Methode Java Basics - Anfänger-Themen 2
D Klassen Zeichnen von Figuren mittels vorgegebener Klasse Java Basics - Anfänger-Themen 3
J Schachbrett zeichnen Java Basics - Anfänger-Themen 9
J Innerhalb der Border zeichnen Java Basics - Anfänger-Themen 9
J Hoher Speicherverbrauch beim Zeichnen von Images aus einer ArrayList Java Basics - Anfänger-Themen 10
A Blitze mit Linien zeichnen Java Basics - Anfänger-Themen 15
U Kreis um Textfelder zeichnen Java Basics - Anfänger-Themen 4
R Balkendiagramm zeichnen Java Basics - Anfänger-Themen 14
J Bild anhand von Koordinaten zeichnen Java Basics - Anfänger-Themen 10
B GUI Parkplatz zeichnen Java Basics - Anfänger-Themen 10
S Mehrere Zeichnungen zeichnen Java Basics - Anfänger-Themen 16
A Linie Zeichnen Applet mit Double Wert Java Basics - Anfänger-Themen 3
F Image übertragen und zeichnen Java Basics - Anfänger-Themen 8
P Funktion zeichnen Java Basics - Anfänger-Themen 6
Q Zeichnen außerhalb der paint-methode Java Basics - Anfänger-Themen 7
F zeichnen in JPanel Java Basics - Anfänger-Themen 7
T Transparente Bilder mit Graphics zeichnen Java Basics - Anfänger-Themen 17
T Sterne zeichnen Java Basics - Anfänger-Themen 4
M Bilder laden und zeichnen Java Basics - Anfänger-Themen 3
G Polygon in Frame zeichnen Java Basics - Anfänger-Themen 3
S X Zeichnen als Muster ausgeben Java Basics - Anfänger-Themen 5
P Kurven zeichnen Java Basics - Anfänger-Themen 5
I dauerhaftes zeichnen Java Basics - Anfänger-Themen 3
H Zeichnen in JPanel Java Basics - Anfänger-Themen 8
W Funktions-Graphen "zeichnen" Java Basics - Anfänger-Themen 2
J Bilder auf Bilder zeichnen Java Basics - Anfänger-Themen 8
I Rechteck Zeichnen Java Basics - Anfänger-Themen 9
W Zeichnen in Swing Java Basics - Anfänger-Themen 7
N Linie auf spezielle Area zeichnen Java Basics - Anfänger-Themen 9
K Auf JPanel Zeichnen Java Basics - Anfänger-Themen 8
E Frame neu Zeichnen Java Basics - Anfänger-Themen 3
D Problem beim Zeichnen von "Das Haus vom Nikolaus" Java Basics - Anfänger-Themen 10
M Farbiges Rechteck zeichnen Java Basics - Anfänger-Themen 2
M Zeichnen in Java Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben