Eigener Grafik Editor mit fehlerhafter Anzeige

NicoRobin

Neues Mitglied
Hi,

ich versuche einen einfachen Grafik Editor zu machen. Er soll beim Klick Punkte in das zentralle Panel einfügen. Die alten Punkte sollen bei jedem neuen Klick erhalten bleiben.
Die Punkte werden auch gezeichnet, im Panel unten wird auch beim anklicken der verschiedenen Menüpunkte aufgelistet, welchen Menüpunkt man angeklickt hat.
Jedoch wird schon beim ersten Punkt die Menüleiste verdoppelt oder andere Abstrusitäten entstehen.. es werden Punkte diagonal doppelt angezeigt etc. Sobald ich z.B. das Fenster vergrößere per Hand, wird die Anzeige vollkommen normal wie ich sie eigentlich haben will, aber nach einem erneuten Klick ist alles wieder doppelt drin.
Leider finde ich nicht meinen Fehler :(
Desweiteren soll eigentlich die Zeichenfläche weiss sein, aber auf setBackground(Color.WHITE); reagiert das Panel nicht.

Hier ist mein Code. Vllt findet jemand den Fehler und könnte mir erklären bzw. zeigen was ich falsch mache.

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class GraphEditor extends JFrame implements ActionListener {
	
	private JMenuBar mb = new JMenuBar();
	private JMenu graph = new JMenu("Graph");
	private JMenuItem oeffnen = new JMenuItem("open");
	private JMenuItem neu = new JMenuItem("new");
	private JMenuItem speichern = new JMenuItem("save");
	
	private JMenu vertex = new JMenu("Vertex");
	private JMenuItem insert = new JMenuItem("insert");
	private JMenuItem delete = new JMenuItem("delete");
	private JMenuItem move = new JMenuItem("move");
	private JMenuItem none = new JMenuItem("none");
	
	private JTextField textf = new JTextField("none");
	private JLabel sa = new JLabel("Selected Action");
	private JPanel unten = new JPanel();
	
	private Zeichenflaeche flaeche = new Zeichenflaeche();
		
			
	public GraphEditor(String s) {
		super(s);
		// Menu
			
		graph.add(oeffnen);
		graph.add(neu);
		graph.add(speichern);
		mb.add(graph);
		
		oeffnen.addActionListener(this);
		neu.addActionListener(this);
		speichern.addActionListener(this);
			
		vertex.add(insert);
		vertex.add(delete);
		vertex.add(move);
		vertex.add(none);
		mb.add(vertex);
		
		insert.addActionListener(this);
		delete.addActionListener(this);		
		move.addActionListener(this);
		none.addActionListener(this);
		
		this.setJMenuBar(mb);

		
		// Panel in der Mitte und Panel unten
			
		textf.setColumns(15);
		textf.setBackground(Color.LIGHT_GRAY);
		textf.setEditable(false);
		
		unten.add(sa);
		unten.add(textf);
		
		add(unten, BorderLayout.SOUTH);
		this.add(flaeche);
			
		
	}
	class Zeichenflaeche extends JPanel implements MouseListener{
		private ArrayList<Kreis> kreise = new ArrayList<Kreis> ();
		
		public Zeichenflaeche(){
			
			setBackground(Color.WHITE);
			addMouseListener(this);

		}
		
		private class Kreis {
			private int x, y, dx, dy;
			public Kreis(int x, int y, int dx, int dy) {
				this.x = x;
				this.y = y;
				this.dx = dx;
				this.dy = dy;
			}
		}
				
		public void mouseClicked(MouseEvent e) {
			kreise.add(new Kreis(e.getX(), e.getY(), 10, 10));
			repaint();
		}

		public void mouseEntered(MouseEvent e) {};
		public void mouseExited(MouseEvent e) {};
		public void mousePressed(MouseEvent e) {};
		public void mouseReleased(MouseEvent e) {};
		
		public void paint(Graphics g) {
			g.setColor(Color.black);

			for (Kreis k: kreise) {
				g.fillOval(k.x, k.y, k.dx, k.dy);
			}
		}
		
		
	}
	
	public void actionPerformed(ActionEvent e){
			if(e.getSource() == oeffnen) textf.setText("Graph: open");				
			if(e.getSource() == neu) textf.setText("Graph: new");				
			if(e.getSource() == speichern) textf.setText("Graph: save");						
			if(e.getSource() == insert)	textf.setText("Vertex: insert");
			if(e.getSource() == move) textf.setText("Vertex: move");				
			if(e.getSource() == delete)	textf.setText("Vertex: delete");			
			if(e.getSource() == none) textf.setText("none");
	}

		
	public static void main(String[] args) {

		GraphEditor f = new GraphEditor("MyGraphEditor");
		
		f.pack();
		f.setSize(800,600);
		f.setVisible(true);
	}
}

fehlerd.jpg

So sieht das nach ein paar Klicks aus.

Schon mal danke im Vorraus für die Hilfe :)
 

Ebenius

Top Contributor
Immer [c]paintComponent(Graphics)[/c] überschreiben und [c]super.paintComponent(g);[/c] am Anfang der eigenen Implementierung aufrufen. [c]paint(Graphics)[/c] überschreibt man dagegen (bei JComponent-Derivaten) nicht.

Ebenius
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Maxim6394 JavaFX Scene Builder - Crash bei eigener Komponente AWT, Swing, JavaFX & SWT 2
H Eigener Dialog mit Rückgabe -> Warten auf Button AWT, Swing, JavaFX & SWT 3
K eigener button in swing AWT, Swing, JavaFX & SWT 3
T Event Handling JLabel als eigener Button AWT, Swing, JavaFX & SWT 7
A Drag and Drop eigener Objekte AWT, Swing, JavaFX & SWT 7
B Erstellen eigener Combobox ("CellFactory") AWT, Swing, JavaFX & SWT 4
S Eigener Syntax Highlighter - Problem AWT, Swing, JavaFX & SWT 5
Oliver530 ActionListener von eigener ButtonKlasse AWT, Swing, JavaFX & SWT 16
N 2D-Grafik RTF in eigener JComponent AWT, Swing, JavaFX & SWT 2
K 3D-Grafik Canvas ist ein eigener Frame?! AWT, Swing, JavaFX & SWT 13
frankred Swing Eigener ListCellRenderer D'n'D "MOVE" - Mauszeiger flackert AWT, Swing, JavaFX & SWT 14
N jComboBox und eigener Datentyp AWT, Swing, JavaFX & SWT 8
Q Eigener Colorchooser AWT, Swing, JavaFX & SWT 2
V LayoutManager Eigener LayoutManager funktioniert nicht. AWT, Swing, JavaFX & SWT 5
C Swing eigener InputDialog AWT, Swing, JavaFX & SWT 6
L Swing Falscher Wert nach eigener Sortierung (JTable) AWT, Swing, JavaFX & SWT 2
R JTable - eigener Editor - Mouse events AWT, Swing, JavaFX & SWT 2
S Mit eigener Klasse auf GUI-Elemente zugreifen AWT, Swing, JavaFX & SWT 3
J Swing JTable, eigener TableCellRenderer Keine Anzeige in den Zellen AWT, Swing, JavaFX & SWT 8
O Eigener Button AWT, Swing, JavaFX & SWT 8
data89 Eigener Button variiert in der Größe - Hilfee! AWT, Swing, JavaFX & SWT 5
A Nimbus eigener Painter funzt nicht AWT, Swing, JavaFX & SWT 11
O AWT Zeichne mit eigener Farbe AWT, Swing, JavaFX & SWT 3
A Aufrufen eigener Klasse AWT, Swing, JavaFX & SWT 8
J eigener Layoutmanager? AWT, Swing, JavaFX & SWT 6
M Eigenes ActionEvent / Eigener Listener AWT, Swing, JavaFX & SWT 2
G SWT DatePicker funzt nicht in eigener Anwendung AWT, Swing, JavaFX & SWT 5
J Problem mit eigener Titelleiste und MouseMotionListener AWT, Swing, JavaFX & SWT 2
F Eigener Observer? AWT, Swing, JavaFX & SWT 4
H eigener Editor und JList als PopMenu AWT, Swing, JavaFX & SWT 6
M Brauche Hilfe zum Einbinden von eigener Schrfitart AWT, Swing, JavaFX & SWT 3
m@nu Problem mit eigener TableCellEditor-Impelemtierung AWT, Swing, JavaFX & SWT 5
clemson Edtor mit anzeigen eigener Tags AWT, Swing, JavaFX & SWT 8
V SWT eigener Renderer? + wo gibts die Sourcen für SWT AWT, Swing, JavaFX & SWT 2
I Libraries für AWT für andere Grafik-Frameworks tauglich machen AWT, Swing, JavaFX & SWT 6
G 2D-Grafik Grafik in zwei verschiedenen Fenstern gleichzeitig zeichnen AWT, Swing, JavaFX & SWT 9
R Grafik per JButton laden und austauschen lassen AWT, Swing, JavaFX & SWT 14
M Umwandlung in den HSV-Farbraum lässt die Grafik pixelig werden AWT, Swing, JavaFX & SWT 8
S 2D-Grafik Winkelberechnungen auf 2D Grafik AWT, Swing, JavaFX & SWT 2
E Grafik karte erkennen AWT, Swing, JavaFX & SWT 3
S JavaFX Java Custom Node Grafik zurückgeben AWT, Swing, JavaFX & SWT 2
D Swing JCombobox Aktion löscht Grafik AWT, Swing, JavaFX & SWT 1
K Grafik in JFrame einpassen AWT, Swing, JavaFX & SWT 3
C Nach Aufruf von anderer Klasse streikt Grafik AWT, Swing, JavaFX & SWT 1
T AWT Grafik"Array" einzelne Elemente verschieben AWT, Swing, JavaFX & SWT 1
Sanni94 JavaFX Kann man eine Grafik in einen Text einbinden? AWT, Swing, JavaFX & SWT 2
S Höhendaten in einer Grafik ausgeben AWT, Swing, JavaFX & SWT 2
S Grafik: Programm kommt nicht zur paint()-Methode AWT, Swing, JavaFX & SWT 6
S Grafik in einer Klassen einfügen/hinzufügen AWT, Swing, JavaFX & SWT 1
C 2D Grafik ein Bild soll permanent durchlaufen AWT, Swing, JavaFX & SWT 2
S 3D-Grafik 3d Grafik auf einem JPanel oder im JScrollPane AWT, Swing, JavaFX & SWT 1
F AWT Grafik wird nicht richtig aktualisiert AWT, Swing, JavaFX & SWT 2
J JTabbedPane Grafik unterhalb der Tabs AWT, Swing, JavaFX & SWT 3
F Grafik hängt sich auf AWT, Swing, JavaFX & SWT 20
S LookAndFeel GUI-Grafik AWT, Swing, JavaFX & SWT 5
J Verschwommene Grafik AWT, Swing, JavaFX & SWT 4
C LayoutManager Grafik soll nicht im GridLayout Skalieren AWT, Swing, JavaFX & SWT 3
F Grafik mit Buttons versehen AWT, Swing, JavaFX & SWT 8
C Grafik Taschenrechner AWT, Swing, JavaFX & SWT 5
J Grafik (Kreis) schneller bewegen? AWT, Swing, JavaFX & SWT 6
Kenan89 Grafik und Text in JPanel anzeigen AWT, Swing, JavaFX & SWT 8
D Fenster mit Grafik überlappen AWT, Swing, JavaFX & SWT 3
Maxim6394 Rotation einer Grafik in swing AWT, Swing, JavaFX & SWT 13
D Swing Grafik in JPanel anzeigen. AWT, Swing, JavaFX & SWT 3
W Grafik von JFrame korrekt speichern AWT, Swing, JavaFX & SWT 7
S Grafik Fehler AWT, Swing, JavaFX & SWT 15
M Swing JLabel (mit einer Grafik) aktualisieren AWT, Swing, JavaFX & SWT 2
D 2D-Grafik Problem beim Drucken eines Grafik-Objekts AWT, Swing, JavaFX & SWT 2
Daniel_L Grafik erstellen, drin zeichnen und dann speichern AWT, Swing, JavaFX & SWT 2
D Grafik über JPanels hinweg verschieben AWT, Swing, JavaFX & SWT 2
C Grafik von main aus aufrufen AWT, Swing, JavaFX & SWT 13
O Swing Label(bzw. Grafik) verdekt von anderm Label AWT, Swing, JavaFX & SWT 2
T rekursive Grafik AWT, Swing, JavaFX & SWT 5
I 2D-Grafik Problem mit schreiben von Text auf eine Grafik AWT, Swing, JavaFX & SWT 7
F Swing Framework gesucht (Swing, Chart, "Scheduling" Grafik) AWT, Swing, JavaFX & SWT 2
S Pacman-Grafik AWT, Swing, JavaFX & SWT 23
lordcarlos Dynamische und interaktive grafik AWT, Swing, JavaFX & SWT 5
D Systemmodale Grafik AWT, Swing, JavaFX & SWT 10
J Geladene Grafik in ImageIcon auf Panel fest positionern. AWT, Swing, JavaFX & SWT 8
W Grafik aktualisieren AWT, Swing, JavaFX & SWT 5
S Swing Zugriff auf Polyline in Grafik AWT, Swing, JavaFX & SWT 4
A Swing Bei größe verändern des Fensters Grafik weg AWT, Swing, JavaFX & SWT 3
C gute Grafik-Bibliotheken gesucht AWT, Swing, JavaFX & SWT 6
D JFormattedTextfield um Grafik erweitern AWT, Swing, JavaFX & SWT 15
O Grafik wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
P JPanel mit Grafik von HDD über JTree AWT, Swing, JavaFX & SWT 10
S 2D-Grafik beeinflussen durch Scrollbalken AWT, Swing, JavaFX & SWT 2
A Grafik aus MIME-kodiertem Inhalt erzeugen AWT, Swing, JavaFX & SWT 2
T (WACOM) Grafik Tablet abfragen AWT, Swing, JavaFX & SWT 3
S Button mit Grafik versehen AWT, Swing, JavaFX & SWT 5
D Grafik bearbeiten AWT, Swing, JavaFX & SWT 11
M Ich habe Werte und Brauche Grafik! AWT, Swing, JavaFX & SWT 3
M Grafik flexibel an berechneten Koordinaten positionieren AWT, Swing, JavaFX & SWT 4
M dynamische Grafik in JFrame einbetten AWT, Swing, JavaFX & SWT 2
G Transparente Grafik über JMF Video zeichnen AWT, Swing, JavaFX & SWT 2
I Grafik in Text umwandeln AWT, Swing, JavaFX & SWT 11
G Grafik auf mehrere Methoden/Klassen zerlegen AWT, Swing, JavaFX & SWT 2
G Grafik in Button einbinden AWT, Swing, JavaFX & SWT 3
M Grafik in JFrame in Kombination mit Steuerelementen AWT, Swing, JavaFX & SWT 2
T grafik in jpanel wird nicht neugezeichnet AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben