Simpler DrawLine - Befehl!?

fl_ex

Bekanntes Mitglied
Moorgen...

ich habn Problem mit nem Simplen DrawLine-Befehl^^

also ich habe die Paintfunktion:
Java:
public void paint(Graphics g, int x, int y, int x2, int y2) {
	g.drawLine(x, y, x2, y2);
}

Und nun will ich ne Line zeichnen die von einem Button zum nächsten geht...

d.h:

Java:
Graphics g = null;
Graphics2D g2 = (Graphics2D) g; 
paint(g2, x, y, btn3.getX(), btn3.getY());

NullPointerException... weil g ja null ist... aber wie mach ich das sonst? weil btn3.getX und so verändert sich ja... will nich direkt in der paintmethode die x und y werte eintragen...

:/
 

fl_ex

Bekanntes Mitglied
Java:
package diags;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;

import bebauung.domain.Process;

public class DiagramShow extends JFrame {

	/**
	 * Create the panel.
	 */
	public DiagramShow(final bebauung.domain.Process process) {

		setSize(630, 501);
		getContentPane().setLayout(null);
		setVisible(true);

		int x = 10;
		int y = 10;
		int width = 50;
		int height = 25;

		final List<Process> subProcessesList = process.getSubProcesses();
		// TODO
		System.out.println(process.getName());
		final JButton btn1 = new JButton();
		btn1.setBounds(x, y, width, height);
		getContentPane().add(btn1);

		y += 30;

		for (Process process2 : subProcessesList) {
			// TODO
			System.out.println("--" + process2.getName());
			final JButton btn2 = new JButton();
			btn2.setBounds(x, y, width, height);
			getContentPane().add(btn2);

			final List<Process> subSubProcessesList = process2.getSubProcesses();
			if (subSubProcessesList.isEmpty() == true) {
				x += 55;
			} else {
				y += 30;
			}

			for (Process process3 : subSubProcessesList) {
				// TODO
				System.out.println("---" + process3.getName());
				final JButton btn3 = new JButton();
				btn3.setBounds(x, y, width, height);
				getContentPane().add(btn3);
				Graphics g = getGraphics();
				Graphics2D g2 = (Graphics2D) g;
				paint(g2, x, y, btn3.getX(), btn3.getY());
				y -= 30;
				x += 55;
			}
		}
	}

	public void paint(Graphics g, int x, int y, int x2, int y2) {
		g.drawLine(x, y, x2, y2);
	}

}

er malt dann quasi die buttons ... und soll sie nun verbinden...

vielleicht klappts jetzt?^^
 

Landei

Top Contributor
In ActionListenern oder so zeichnest du überhaupt nichts. paint und paintComponent werden von Swing aufgerufen, und sollen auch nur von Swing aufgerufen werden. Das Graphics-Objekt muss auch von Swing stammen, woher soll es sonst "sehen", was du gemacht hast?

Du musst also paintComponent (paint lässt man im Normallfall besser in Ruhe) so ändern, dass dort das richtige gezeichnet wird. Dazu kann dein Programm natürlich irgendwelche Werte setzen, die paintComponent zum Zeichnen verwenden kann.
 

Marco13

Top Contributor
Grob sowas wie
Java:
class PanelMitButtonsUndLinien extends JPanel
{
    private List<Line2D> linien = ...
    // (add/remove-Methoden für Linien einbauen)

    @Override
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        // hier jetzt alle Linien zeichnen
    }
}
 

Landei

Top Contributor
Genau, versuche es so wie Marco vorschlägt. Wenn du im ActionListener etwas verändert hast (z.B. eine Linie hinzufügst), musst du danach normalerweise noch repaint am Panel aufrufen, damit Swing "weiss", dass sich etwas geändert hat.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T simpler Kalender Java Basics - Anfänger-Themen 10
Q simpler Taschenrechner Java Basics - Anfänger-Themen 34
N Simpler cast? Java Basics - Anfänger-Themen 9
M Simpler Algorithmus läuft extrem langsam. Java Basics - Anfänger-Themen 3
S Fehler bei simpler additions GUI Java Basics - Anfänger-Themen 2
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
D Simpler Taschenrechner Java Basics - Anfänger-Themen 6
P ganz simpler algorithmus Java Basics - Anfänger-Themen 3
W [PROJEKT] Simpler grafischer Taschenrechner Java Basics - Anfänger-Themen 8
L Simpler FTP Dateiupload Java Basics - Anfänger-Themen 4
F Datentypen Ganz simpler Taschenrechner mit switch Java Basics - Anfänger-Themen 10
J Simpler DNS Client Java Basics - Anfänger-Themen 20
F simpler Taschenrechner (blutiger Anfänger) Java Basics - Anfänger-Themen 7
G Datenbank VS simpler Datenstruktur Java Basics - Anfänger-Themen 3
J Erste Schritte drawLine Methode der Graphics Klasse Java Basics - Anfänger-Themen 2
B drawLine in eine Schleife packen Java Basics - Anfänger-Themen 2
W drawLine(...) - Linie soll nur begrenzt lang sein Java Basics - Anfänger-Themen 9
B Drawline mit Borderlayout Java Basics - Anfänger-Themen 3
B Drawline wird auf JFrame nicht angezeigt Java Basics - Anfänger-Themen 3
F g.drawLine in g 2D casten Java Basics - Anfänger-Themen 5
N DrawLine Java Basics - Anfänger-Themen 7
F g.drawLine Farbübergänge Java Basics - Anfänger-Themen 4
G drawLine + Linienstärke Java Basics - Anfänger-Themen 2
N NullPointerException in "g.drawLine(x, y, x, y);" Java Basics - Anfänger-Themen 6
G g.drawLine arbeitet sehr ungenau. Java Basics - Anfänger-Themen 4
Makaan_Neo Eigene DrawLine Methode mit Farbverlauf Java Basics - Anfänger-Themen 5
M AWT -eigene DrawLine Methode mit Farbverlauf in der Linie ? Java Basics - Anfänger-Themen 2
X wie bekomme ich durch Eingabeaufforderung definierte double in einen Befehl, welcher 3 erwartete double braucht? Java Basics - Anfänger-Themen 3
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
Viktor A. Kaiser Ampelschaltung mit if-Befehl Java Basics - Anfänger-Themen 11
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
Lion.King switch-Befehl Java Basics - Anfänger-Themen 6
sserio Math. Befehl wird rot markiert Java Basics - Anfänger-Themen 5
F Terminal Windows per Befehl schließen? Java Basics - Anfänger-Themen 9
Y Wie kann man überprüfen, ob bei einem Print Befehl tatsächlich etwas geprintet wurde? Java Basics - Anfänger-Themen 4
H Befehl wird nicht ausgeführt - System.out.println Java Basics - Anfänger-Themen 3
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
K Subklassen mit einzigem Befehl addieren Java Basics - Anfänger-Themen 6
F cmd Befehl ausführen Java Basics - Anfänger-Themen 4
S Datenbank Befehl nach Login Java Basics - Anfänger-Themen 5
D Input/Output Befehl aus Benutzereingabe herausfiltern Java Basics - Anfänger-Themen 12
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
N Javac -version der Befehl ist entweder falsch geschrieben oder...... Java Basics - Anfänger-Themen 8
O Methoden Runtime.getRuntime().exec(befehl); Java Basics - Anfänger-Themen 6
L Ist an diesem Befehl irgendwas falsch? Java Basics - Anfänger-Themen 2
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
B Copy Paste Befehl Java Basics - Anfänger-Themen 6
O String: Befehl und Wert erkennen. Java Basics - Anfänger-Themen 4
D Erste Schritte Zuul - 2ten Befehl einführen Java Basics - Anfänger-Themen 68
D Erste Schritte Befehl back implementieren Java Basics - Anfänger-Themen 18
elischa unbekannter Befehl zur Compilezeit Java Basics - Anfänger-Themen 22
B Befehl um ein Befehl abzubrechen Java Basics - Anfänger-Themen 2
M Classpath Befehl zum Kompilieren um die Option classpath erweitern. Java Basics - Anfänger-Themen 5
F Konsolen Befehl ausführen und Rückgabe auswerten Java Basics - Anfänger-Themen 3
S Befehl current: Java Basics - Anfänger-Themen 3
Silvascus Void Methode einem Stringparameter im syso-Befehl hinzufügen Java Basics - Anfänger-Themen 3
slejden Erste Schritte der Befehl import Java Basics - Anfänger-Themen 2
C OOP array Sortieren ohne den sort Befehl Java Basics - Anfänger-Themen 10
J Problem WIE ohne Goto-Befehl lösbar? Java Basics - Anfänger-Themen 6
N Benötige eine Alternative für einen GOTO Befehl Java Basics - Anfänger-Themen 2
O CMD Befehl javac Java Basics - Anfänger-Themen 3
U Java Swing Timer mit ButtonKlick starten u. nach 12 Sekunden Befehl ausführen Java Basics - Anfänger-Themen 7
D Klassenmethode: Befehl erkennen, dann int zurückgeben Java Basics - Anfänger-Themen 2
C Desktopiconwechsel ohne Befehl Java Basics - Anfänger-Themen 0
V Schlüsselworte Befehl Ignorieren? Java Basics - Anfänger-Themen 10
B JDK installieren Befehl java funktioniert nicht Java Basics - Anfänger-Themen 15
J Variablen Auf der suche nach einem Befehl Java Basics - Anfänger-Themen 2
M Frage zum return; Befehl Java Basics - Anfänger-Themen 1
C CMD Befehl + Variable im Java-Code ausführen Java Basics - Anfänger-Themen 8
S Methoden auf befehl ausführen Java Basics - Anfänger-Themen 7
iB0T Eine Art Goto Befehl! Java Basics - Anfänger-Themen 27
H Exit Befehl in eigener Konsole Java Basics - Anfänger-Themen 9
D Erste Schritte bash-Befehl mit Swing ausführen Java Basics - Anfänger-Themen 8
A Schlüsselworte Befehl this Java Basics - Anfänger-Themen 8
E CMD Befehl über Java ausführen? Java Basics - Anfänger-Themen 4
E Warum wird Methode nicht durch return-Befehl beendet? Java Basics - Anfänger-Themen 3
D Hilfe zu Java Befehl In.open Java Basics - Anfänger-Themen 2
B Javadoc-Befehl unter Ubuntu Java Basics - Anfänger-Themen 2
I Befehl/Methode "los()" Java Basics - Anfänger-Themen 17
A Befehl gesucht....wie komme ich an Folgendes Objekt? Java Basics - Anfänger-Themen 6
I Return Befehl in Methode Java Basics - Anfänger-Themen 13
K Befehl per Shell an Java-Applet JAR übergeben Java Basics - Anfänger-Themen 16
S javac Befehl Java Basics - Anfänger-Themen 7
C Befehl zum Verlassen einer Schleife Java Basics - Anfänger-Themen 27
W Befehl ausführen bei Mausklick + gedrückte Strg-Taste Java Basics - Anfänger-Themen 2
B Befehl mit Priorität aufrufen Java Basics - Anfänger-Themen 4
I Befehl wird erst nach dem Ausführen einer Funktion ausgeführt Java Basics - Anfänger-Themen 4
K Problem mit h2 DB Insert Befehl Java Basics - Anfänger-Themen 6
B Befehl für vorselektierten Radiobutton Java Basics - Anfänger-Themen 2
H if-Befehl mit Buttongroup Java Basics - Anfänger-Themen 9
B assert befehl in netbeans Java Basics - Anfänger-Themen 3
M Objekto.Programm. Return-Befehl Java Basics - Anfänger-Themen 4
F Kann String in Befehl wandeln? Java Basics - Anfänger-Themen 12
M Befehl zum Einlesen von Benutzereingaben Java Basics - Anfänger-Themen 1
M Befehl zum Fenster schließen? GUI Java Basics - Anfänger-Themen 3
L Do while Befehl verkürzen? Java Basics - Anfänger-Themen 16
-horn- Befehl an CMD übergeben Java Basics - Anfänger-Themen 15
A [Fehlermeldung]Sleep-Befehl Java Basics - Anfänger-Themen 4
B Befehl "javac" wird nicht erkannt Java Basics - Anfänger-Themen 14
S Befehl "javac" funktioniert und Windows 7 nicht? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben