ContentPane lösche linien

irgendetwas

Mitglied
Ich will das bei diesem Programm, welches ich einfacherheitshalber gekürzt habe, die Linien welche ich dem ContentPane hinzufüge gelöscht werden und nur die neuste Linie angezeigt wird, also dass bevor ich eine neue Linie dem ContentPane hinzufuegen mit g.drawLine(); die alte gelöscht wird und nicht so ein chaos entsteht. Danke
Java:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;

import javax.swing.*;

public class GUI extends JFrame
{

	public GUI() {
		setTitle("Travelling Salesman");
	
		setBounds(0, 0, Toolkit.getDefaultToolkit().getScreenSize().width, Toolkit.getDefaultToolkit().getScreenSize().height);
		getContentPane().setBackground(Color.white);
		setLayout(null);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setResizable(false);

		addMouseMotionListener(new MouseMotionAdapter()
		{
			
			@Override
			public void mouseDragged(MouseEvent e) {
				Graphics g = GUI.this.getGraphics();
				g.drawLine(0, 0, e.getX(), e.getY());	
			}
		});

		setVisible(true);
	}
	
	public static void main(String[] args) {
		new GUI();
	}
}
 

Kevin94

Top Contributor
Verschiebe, minimiere oder resize doch das Fenster vor jeder deiner Drags.
Worauf ich mit dieser, zugegebener Maßen zynischen, Bemerkung hinaus will ist, dass man unter KEINEN Umständen getGraphics verwenden sollte, da das Ergebnis werder vorhersagbar noch reproduzierbar ist. Das was du über getGraphics zeichnest, ist futsch, sobald das zugehörige Component neugezeichnet wird, sei es ausgelöst durch Userinteraktion (wie angedeutet) oder sei es durch Code angestoßen (z.B. Animation).

Dr richtige Weg wäre, eine Subklasse von JComponent zu erstellen und in dieser paintComponent(Graphics g) zu überschreiben. So könntest du z.B. Anfangs- und Endpunkt der Linie als Instanzvariablen speichern, diese bei jedem Dragged-Event setzten und dann repaint() auf dem Component aufrufen (was das neuzeichen durch Swing anstößt). Da beim aufruf von paintComponent alles alte gelöscht wird, löst sich dein Problem dadurch von alleine.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Mit ContentPane werden Komponenten angezeigt, mit SplitPane, JPanel nicht? AWT, Swing, JavaFX & SWT 6
DaCrazyJavaExpert Swing JPanel "ContentPane" wird nicht gesetzt/angezeigt AWT, Swing, JavaFX & SWT 16
I Objekte aus contentPane löschen funktioniert nicht AWT, Swing, JavaFX & SWT 3
U Swing Panels im Contentpane durchschalten AWT, Swing, JavaFX & SWT 1
N individuell geformtes ContentPane?! AWT, Swing, JavaFX & SWT 2
P Swing mit ContentPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
jemandzehage setResizable(false) ändert Größe des Contentpane AWT, Swing, JavaFX & SWT 4
B Swing ContentPane resettet sich selbst AWT, Swing, JavaFX & SWT 2
K Swing: ContentPane von JDialog ist transparent (Fehler) AWT, Swing, JavaFX & SWT 10
thE_29 Bufferungsproblem JFrame/JPanel/ContentPane AWT, Swing, JavaFX & SWT 2
S definierte Größe von contentPane / JPanel möglich? AWT, Swing, JavaFX & SWT 4
P Breite und Höhe des contentPane abfragen AWT, Swing, JavaFX & SWT 3
O ContentPane AWT, Swing, JavaFX & SWT 4
F Wie bestimmte Obj. einer ContentPane abfragen und vergl? AWT, Swing, JavaFX & SWT 11
M Zwei Element auf ein Contentpane AWT, Swing, JavaFX & SWT 45
G jFrame & ContentPane AWT, Swing, JavaFX & SWT 4
T Text auf eine ContentPane AWT, Swing, JavaFX & SWT 4
R ContentPane bei JFrame und JDialog AWT, Swing, JavaFX & SWT 2
D JFrame Größe auf ContentPane Größe abstimmen AWT, Swing, JavaFX & SWT 2
sliwalker ContentPane leeren und völlig neu bestücken? AWT, Swing, JavaFX & SWT 4
R Buttons in ContentPane austauschen AWT, Swing, JavaFX & SWT 7
K Contentpane neu laden AWT, Swing, JavaFX & SWT 4
F ContentPane Scrollbar machen. AWT, Swing, JavaFX & SWT 3
T HILFE wie lösche ich gezeichnetes per tastendruck AWT, Swing, JavaFX & SWT 1
F JTextArea - wie lösche ich daraus Text? AWT, Swing, JavaFX & SWT 3
K Mehrere Linien zeichnen AWT, Swing, JavaFX & SWT 8
T Tic Tac Toe - GUI Linien zeichnen AWT, Swing, JavaFX & SWT 14
S Parallele Linien zeichnen AWT, Swing, JavaFX & SWT 5
J Linien auf JPanel zeichnen AWT, Swing, JavaFX & SWT 3
llabusch Linien in JPanel zeichnen AWT, Swing, JavaFX & SWT 6
V JFreechart: In Linechart Linien einzeichnen und Bereiche färben AWT, Swing, JavaFX & SWT 4
S 2D-Grafik MouseDragged Linien zeichnen AWT, Swing, JavaFX & SWT 4
M Zeichnen ohne vorherige Linien zu löschen AWT, Swing, JavaFX & SWT 2
1 Buttons in Kombination mit Linien AWT, Swing, JavaFX & SWT 3
A 2D-Grafik Dickere Linien AWT, Swing, JavaFX & SWT 4
C Linien über GridLayout zeichnen AWT, Swing, JavaFX & SWT 3
D JCombobox mit Linien Styles AWT, Swing, JavaFX & SWT 4
M 2D-Grafik Mehrere Linien (nacheinander) übereinander Zeichnen AWT, Swing, JavaFX & SWT 6
P SWT Linien / Pfeile zeichnen in SWT? AWT, Swing, JavaFX & SWT 3
O Sättigung bei Linien AWT, Swing, JavaFX & SWT 2
P Swing Skalieren mit DrawImage macht Linien kaputt AWT, Swing, JavaFX & SWT 6
J 2D-Grafik Fehler beim Überzeichnen von Linien AWT, Swing, JavaFX & SWT 11
K Swing JTable - vertikale Gitter-Linien AWT, Swing, JavaFX & SWT 2
1 Eigene Component in JScrollBar + fixe Linien??? AWT, Swing, JavaFX & SWT 2
C AWT: Pixel für Pixel Linien auf Panel zeichnen AWT, Swing, JavaFX & SWT 2
U SWT Linien verschwinden nach Verschieben AWT, Swing, JavaFX & SWT 3
P [gelöst] Verschiebbare Komponenten mit Linien verbinden AWT, Swing, JavaFX & SWT 2
S [Swing] Wie zeichne ich neue Linien AWT, Swing, JavaFX & SWT 3
P Problem beim Linien ziehen! AWT, Swing, JavaFX & SWT 12
Bierhumpen Linien anklicken? AWT, Swing, JavaFX & SWT 9
X Dynamische linien (Position und Länge) AWT, Swing, JavaFX & SWT 4
B Urspungskoordinaten von Linien ändern AWT, Swing, JavaFX & SWT 3
M Farbige Linien zeichnen AWT, Swing, JavaFX & SWT 3
T Linien zeichnen und wieder löschen AWT, Swing, JavaFX & SWT 9
Z Und schon wieder die Linien (Problem beim überzeichnen) AWT, Swing, JavaFX & SWT 4
G Linien Diagram in SWT AWT, Swing, JavaFX & SWT 4
S JTable - Breite der Linien AWT, Swing, JavaFX & SWT 8
F Zeichen von Linien, Rechtecken, zb wie in paint AWT, Swing, JavaFX & SWT 2
M gestrichelte Linien bzw. Pfeile AWT, Swing, JavaFX & SWT 2
M Linien zeichnen und anklicken AWT, Swing, JavaFX & SWT 2
B JTree + Linien im Windows L&F AWT, Swing, JavaFX & SWT 9
G Linien in ein Koordinatensystem zeichen AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben