2017-05-06 4 views
0

Ich versuche eine Methode zu erstellen, die beim Aufruf einen JFrame erstellt. Innerhalb derselben Klasse, die den JFrame erzeugt, habe ich eine andere Methode namens line. Diese Methode soll, wenn sie aufgerufen wird, eine Linie auf dem JFrame basierend auf den eingegebenen Koordinaten zeichnen. Der JFrame wird korrekt geladen, aber die Zeilenmethode funktioniert nicht. d. h. selbst wenn die Linienmethode gültige Koordinaten hat, zeigt sich nichts auf dem JFrame.Zeichnen von Zeilen in einem JFrame mit einer separaten Methode

import java.awt.*; 
import javax.swing.JFrame; 

public class Window{ 

    JFrame f = new JFrame("Pathway"); 

    public Window(int width, int height){ 
    f.setSize(width,height); 
    f.setVisible(true); 
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 

    public void line(int x1,int y1,int x2,int y2){ 
       Graphics g = f.getGraphics(); 
       g.setColor(Color.BLACK); 
       g.drawLine(x1,y1,x2,y2); 
    } 
} 

Da ich noch ein Anfänger bin, habe ich keine Ahnung was los ist. Jede Hilfe würde sehr geschätzt werden. Vielen Dank!

Antwort

1

Verwenden Sie nicht getGraphics(). So machst du keine Custom Painting.

Benutzerdefinierte Bemalung erfolgt durch Überschreiben der paintComponent() Methode einer JPanel und Sie fügen das Panel zum Rahmen.

Lesen Sie den Abschnitt aus dem Swing-Tutorial auf Custom Painting für weitere Informationen und Arbeitsbeispiele.

Beginnen Sie mit dem Arbeitsbeispiel aus dem Tutorial und passen Sie es dann an.

Verwandte Themen