awt: paint Methode zeigt nichts an

seb2369

Mitglied
Ich habe soeben den Versuch gestartet einen Plotter, der mir den Graph von quadratischen Funktionen grafisch zurückgibt, zu programmieren.

Jedoch scheitere ich im Moment noch an der void paint(Graphics g){} methode.
Dabei ist NICHT das mathematische Konzept das Problem, sondern das zeichnen eines striches, bzw Punktes selbst. Bei mir bleibt das ganze Fenster weiß, egal ob ich den hintergrund manuell ändere oder nicht.
Ich vermute, dass das Problem am LayoutManager liegt(ich will ihn aber verwenden), lasse mich aber gerne eines besseren belehren :)
Muss ich diese explizit aufrufen oder genügt es sie einfach unter dem Konstruktor zu implementieren?
hier der code:
Java:
package awt.plotter;

import java.awt.Button;
import java.awt.Canvas;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;

public class MyWindow extends Frame {
    Frame frame;
    Label l1;
    Label l2;
    Label l3;
    Button b1;
    TextField t1;
    TextField t2;
    TextField t3;
    Panel panel;
    Canvas canvas;

    MyWindow() {
        frame = new Frame("GraphPlotter");
        frame.setSize(800, 800);

        l1 = new Label("f(x)= ");
        l2 = new Label(" x^2 + ");
        l3 = new Label(" x + ");

        t1 = new TextField("1");
        t2 = new TextField("2");
        t3 = new TextField("3");

        b1 = new Button("Plot");
        frame.setVisible(true);

        frame.setLayout(new FlowLayout());

        frame.add(l1);
        frame.add(t1);
        frame.add(l2);
        frame.add(t2);
        frame.add(l3);
        frame.add(t3);
        frame.add(b1);

    }

    public void paint(Graphics g) {
        g.drawLine(300, 200, 100, 100); // Macht nichts
        g.fillRect(10, 10, 300, 300); // ist auch im "Hintergrund"??
    }
}
die main ruft dann
MyWindow plotter = new MyWindow();
auf.


Ich danke euch im voraus für eure hilfe
Lg
 

Harry Kane

Top Contributor
Du machst lediglich die Frame-Instanz "frame" sichtbar. Die ist aber ein ganz normaler Frame ohne überschriebene paint-Methode.
Damit du die Zeichenoperationen in deiner MyWindow-Klasse siehst, müsstest du in der main
Java:
plotter.setVisible()
aufrufen.
Dann kannst du aber die Instanzvariable "frame" aus MyWindow löschen, ansonsten ist es nur verwirrend.
 

seb2369

Mitglied
gut, erstmal danke für deine schnelle antwort.

Ich habe jetzt wie du gesagt hast plotter.setVisible in meiner main untergebracht und das frame.setVisible (aus MyWindow) gelöscht.
Nun wird mir aber nur mehr das ergebnis der paint methode auf den bildschirm angezeigt nachdem ich das fenster selbst auf die gewünschte größe gebracht habe; die ganzen labels, textfelder, der button und die eingestellte fenstergröße sind nicht mehr vorhanden. Muss ich jetzt evtl den layoutmanager auf visible stellen? wenn ja- wie?

Gibt es in java die möglichkeit den graph komplett von den labels und textfeldern innerhalb meines 800x800 fensters zu trennen? wie?

ps: wie ihr vermutlich heraushört, bin ich recht neu in der welt von java, bitte daher -wenn möglich- ganz präzise und einfache antworten posten ;)

Anbei noch ein bild zur visualisierung so wie ich es mir in etwa vorstelle
 

Anhänge

  • plotter.png
    plotter.png
    8,7 KB · Aufrufe: 34

fhoffmann

Top Contributor
Hallo,

deine Kalsse MyWindow erbt von JFrame und hat ein Member frame von der Klasse JFrame. Da kommst du wharscheinlich schon durcheinander und solltest dich für eine Möglichkeit entscheiden.
Außerdem solltest du setVisible(true) erst ganz am Ende aufrufen, wenn du alle "Teile" zu deinem JFrame hinzugefügt hast.
 

seb2369

Mitglied
kann mir denn keiner das programm so herrichten, dass ich mit der paint methode unterhalb der koordinatenangabe (wie im bild sichtbar) zeichnen kann?
 

Harry Kane

Top Contributor
Du solltest nie von einem Top-Level-Container (Frame, JFrame, JWindow) ableiten, um eigene Zeichenroutinen zu implementieren, und du solltest auch kein reines AWT mehr verwenden. Leite stattdessem von JComponent oder JPanel ab, überschreibe paintComponent(Graphics g) und zeichne dort. Dann kann du deine "Zeichenkomponente" zusammen mit anderen Gui-Komponenten in einen normalen JFrame packen und den dann layouten.
Ein Beispiel findest du hier: https://www.java-forum.org/thema/arraylist-rectangles2d.138049/page-3#post-914036
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Swing - Fehler - Paint Methode Java Basics - Anfänger-Themen 7
thet1983 start & paint Methode? Java Basics - Anfänger-Themen 0
D Wert einer Variable in paint-Methode verwenden Java Basics - Anfänger-Themen 2
OnDemand Berechnung in die start und paint Methode eines Applets Java Basics - Anfänger-Themen 28
T Vererbung Wann wird die Methode paint aufgerufen? Java Basics - Anfänger-Themen 4
A Aufruf der paint() Methode Java Basics - Anfänger-Themen 3
J paint-methode blockiert settings von JComponents Java Basics - Anfänger-Themen 5
R Methoden Zeichnen auf Button-Druck durch Paint-Methode Java Basics - Anfänger-Themen 2
A paint() methode von externer Klasse aufrufen Java Basics - Anfänger-Themen 3
J Paint Methode von JPanel aufrufen Java Basics - Anfänger-Themen 15
Q Zeichnen außerhalb der paint-methode Java Basics - Anfänger-Themen 7
A Methoden Variablen in paint methode Java Basics - Anfänger-Themen 4
M paint-Methode funzt nicht Java Basics - Anfänger-Themen 11
D OOP paint() Methode aus Unterklasse anstoßen Java Basics - Anfänger-Themen 3
K Scrollbar - Bild - paint-Methode - zoom Java Basics - Anfänger-Themen 10
S Bild aus paint() Methode auslagern Java Basics - Anfänger-Themen 14
T Etwas an paint()-Methode übergeben? Java Basics - Anfänger-Themen 6
TheKing Paint-Methode aufrufen Java Basics - Anfänger-Themen 14
N paint methode statt Event-Handling-Methode Java Basics - Anfänger-Themen 3
H Paint Methode malt nicht im Panel Java Basics - Anfänger-Themen 4
S Frage zur paint-Methode Java Basics - Anfänger-Themen 3
B Applet: Event-Handling-Methode in start- bzw. paint-Methode Java Basics - Anfänger-Themen 7
G Nichtstatische Objekte in der paint()-Methode Java Basics - Anfänger-Themen 16
P paint Methode Java Basics - Anfänger-Themen 3
F Applets und die paint-Methode Java Basics - Anfänger-Themen 3
G start-oder paint-Methode anstatt Event-Handling-Methode? Java Basics - Anfänger-Themen 3
V paint()-methode manuell aufrufen? kein autostart erwuenscht Java Basics - Anfänger-Themen 3
T paint() wieder aus einder anderen methode aufrufen funzt nid Java Basics - Anfänger-Themen 2
G Paint Methode löscht alles Java Basics - Anfänger-Themen 4
G Klassen und paint methode Java Basics - Anfänger-Themen 2
X Malen außerhalb der paint() Methode Java Basics - Anfänger-Themen 4
G Zeichnen ausserhalb der paint Methode Java Basics - Anfänger-Themen 4
V Problem mit der Anzeige einer paint-Methode in einem Panel Java Basics - Anfänger-Themen 2
C Ausgaben mit der Paint-Methode Java Basics - Anfänger-Themen 5
S Paint Anwendung: Freihandlinien zeichnen Java Basics - Anfänger-Themen 4
S Erste Schritte drawOval Problem in Paint Anwendung Java Basics - Anfänger-Themen 1
R Begrenzer Anzahl von paint() ? Java Basics - Anfänger-Themen 3
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
S Interface JButton etc. wird in JFrame mit paint() nicht angezeigt Java Basics - Anfänger-Themen 6
M Probleme mit paint() aus java.awt.Graphics Java Basics - Anfänger-Themen 2
L Paint() wird scheinbar nicht richtig ausgeführt Java Basics - Anfänger-Themen 8
N aus Container components paint Java Basics - Anfänger-Themen 2
J paint() vs repaint() Java Basics - Anfänger-Themen 3
A Problem mit paint() Java Basics - Anfänger-Themen 2
Dogge Problem mit paint(Graphics g) im Applet Java Basics - Anfänger-Themen 13
J Problem mit paint(Graphics g) Java Basics - Anfänger-Themen 4
L Erste Schritte Swing oder SWT Paint mit Grafikkarte? Java Basics - Anfänger-Themen 7
T paint() wird nicht aufgerufen Java Basics - Anfänger-Themen 2
K paint() mit einfügen Java Basics - Anfänger-Themen 14
K doppeltes paint beim Drucken Java Basics - Anfänger-Themen 8
F Eine Frage über paint() Funktion Java Basics - Anfänger-Themen 2
S [Applet] Objekte von init bei paint benutzen Java Basics - Anfänger-Themen 9
W repaint() ruft paint() nicht auf Java Basics - Anfänger-Themen 9
J Zweimal im gleichen Paint-Fenster malen Java Basics - Anfänger-Themen 8
V paint funktioniert nicht Java Basics - Anfänger-Themen 14
O Paint Programm mit Fehler Java Basics - Anfänger-Themen 2
K Problem mit Parameter von paint(Graphics g) Java Basics - Anfänger-Themen 3
Y im applet malen ohne repaint paint ? Java Basics - Anfänger-Themen 6
S Datentypen Paint Programm Java Basics - Anfänger-Themen 7
L Paint zeichnet nicht gespeicherte Objekte Java Basics - Anfänger-Themen 3
A paint() - warum nicht aufrufen? Java Basics - Anfänger-Themen 3
S super.paint() Java Basics - Anfänger-Themen 4
M Paint und JColorChooser Java Basics - Anfänger-Themen 12
G hintergrund wird nicht gezeichnet bei paint() Java Basics - Anfänger-Themen 3
K Wieso wird "paint" nicht ausgeführt ? Java Basics - Anfänger-Themen 2
K JPanel, JFrame, paint() und wo ist mein Viereck ? Java Basics - Anfänger-Themen 19
F Frage zu JPanel und Paint Java Basics - Anfänger-Themen 5
M Problem mit paint() und Container. Java Basics - Anfänger-Themen 8
B Paint(Component) und externe Objekte Java Basics - Anfänger-Themen 6
T rotes herz public void paint(Graphics g) Java Basics - Anfänger-Themen 2
G frage zu paint Java Basics - Anfänger-Themen 3
T Mehrere paint Methoden in unterschiedlichen Klassen Java Basics - Anfänger-Themen 7
G Hilfe in paint() ; zeichnen Java Basics - Anfänger-Themen 15
C Einfaches Paint-Programm Java Basics - Anfänger-Themen 9
T .paint() aufrufen Java Basics - Anfänger-Themen 23
S Paint Teilweise Zeitverzögert Java Basics - Anfänger-Themen 6
R paint problem Java Basics - Anfänger-Themen 6
G mit paint() ins JPanel malen. Java Basics - Anfänger-Themen 6
M Auf Panels oder Labels malen? (paint) Java Basics - Anfänger-Themen 9
G repaint in paint aufrufen? Java Basics - Anfänger-Themen 9
B Problem mit Einfügen von Choice (in ein Applet) aus Paint Java Basics - Anfänger-Themen 13
7 In Paint keine Schleife? Java Basics - Anfänger-Themen 13
G Paint auf Panel Java Basics - Anfänger-Themen 4
S paint() direkt auf JFrame seit 1.5 nicht mehr möglich? Java Basics - Anfänger-Themen 5
A Variablenübergabe in die Paint-Funktion Java Basics - Anfänger-Themen 4
D Zeichnen mit Paint zerstört ganzes Fenster Java Basics - Anfänger-Themen 5
T paint() ohne konstruktor aufzurufen? Java Basics - Anfänger-Themen 5
P paint() Java Basics - Anfänger-Themen 6
U paint Java Basics - Anfänger-Themen 8
C zu viele paint()'s. Java Basics - Anfänger-Themen 6
N Probleme mit paint() bei Implementierung in ein Panel Java Basics - Anfänger-Themen 4
Dilandau paint(Graphics g) { unbekannt in try{} / catch{} }? Java Basics - Anfänger-Themen 5
D von paint() und repaint() im Applet Java Basics - Anfänger-Themen 4
T Rekursive Methode Java Basics - Anfänger-Themen 13
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
Leyla Spezifischte Methode Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben