Baum Swing AVL

Status
Nicht offen für weitere Antworten.
L

Lixor123

Gast
Hallo,

ich hab ein Problem. Habe seit 2 Tagen mit Swing und AWT angefangen und wollte nun einen Graphen (Node) in ein Panel zeichnen. Aber irgendwie bekomme ich es nicht hin. Bin schon etwas überfragt und mit Galileo Java bekomme ich keine richtigen Infos.

Der ausgeklammerte Button wird gezeichnet, aber nicht mein Graph:

Hier mein Code:

GUI:
Java:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;

import javax.swing.*;


public class Gui extends JFrame {
		
	private static JPanel drawPanel;
	private JPanel butPanel;
	private JTextArea history;
	private JTextField textInput;
	private JButton butAdd;
	private JButton butDel;
	private JButton butSearch;
	
	public Gui(int x, int y) {
		super("Algorithmik - AVL-Bäume");
		setSize(x, y);
		setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		setLayout( null );
		
		initWindow();
	}
	
	protected void initWindow() {	
		drawPanel 	= new JPanel();
		butPanel 	= new JPanel();
		history 	= new JTextArea();
		textInput 	= new JTextField();
		butAdd 		= new JButton("+");
		butDel		= new JButton("-");
		butSearch	= new JButton("S");
		
		drawPanel.setBounds(0, 0, 700, 575);
		drawPanel.setBackground( Color.WHITE );
		drawPanel.setBorder(BorderFactory.createTitledBorder("Graph"));
		
		butPanel.setBounds(700, 0, 200, 300);
		butPanel.setBorder(BorderFactory.createTitledBorder("Steuerung"));
		
		Dimension dButSize = new Dimension(28,28);
		
		butAdd.setPreferredSize( dButSize );
		butDel.setPreferredSize( dButSize );
		butSearch.setPreferredSize( dButSize );
		
		textInput.setColumns(5);
		butPanel.add( textInput );
		butPanel.add( butAdd );
		butPanel.add( butDel );
		butPanel.add( butSearch );
		
		history.setBounds(700, 300, 197, 275);
		history.setEditable(false);

		getContentPane().add( drawPanel );
		getContentPane().add( butPanel );
		getContentPane().add( history );
	}

	
	public static void main(String[] args) {
		JFrame win = new Gui(Params.FRAME_WIDTH, Params.FRAME_HEIGHT);
		
		win.add( drawPanel );
		win.add( new Button("1") );
		
		AVLNode<Integer> aN = new AVLNode<Integer>(88, new Point(150,150));
		
//		drawPanel.add(new Button("w"));
		drawPanel.add( aN );
		drawPanel.validate();
		
		win.setVisible( true );
	}
}


AVLNode:
Java:
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import javax.swing.JPanel;


public class AVLNode<T> extends JPanel {
	public static final int LEFT_BALANCE_OOB = -2;	// out of balance
	public static final int LEFT_BALANCE_ONE = -1;
	public static final int EVEN = 0;
	public static final int RIGHT_BALANCE_ONE = 1;
	public static final int RIGHT_BALANCE_OOB = 2;
	
	private T value;			// Wert
	private AVLNode<T> left;	// Linker Teilbaum
	private AVLNode<T> right;	// Rechter Teilbaum
	private int balance;		// Balance
	private Point current;
	
	public AVLNode(T value, Point current) {
		this.value = value;
		left = null;
		right = null;
		balance = 0;
		this.current = current;
	}
	
	public AVLNode(T value, AVLNode<T> left, AVLNode<T> right, int balance, Point current) {
		this.value = value;
		this.left = left;
		this.right = right;
		this.balance = balance;
		this.current = current;
	}
	
	public T getValue() {
		return this.value;
	}
	
	public void setValue(T value) {
		this.value = value;
	}
	
	public AVLNode<T> getLeft() {
		return left;
	}
	
	public void setLeft(AVLNode<T> node) {
		this.left = node;
	}
	
	public AVLNode<T> getRight() {
		return right;
	}
	
	public void setRight(AVLNode<T> node) {
		this.right = node;
	}
	
	public int getBalance() {
		return this.balance;
	}
	
	public void setBalance(int balance) {
		this.balance = balance;
	}
	
	public Point getCurrent() {
		return current;
	}
	
	public void setCurrent( Point current ) {
		this.current = current;
	}
	
	@Override 
	protected void paintComponent( Graphics g ) {	
		String valueStr;
		Integer i = (Integer) this.getValue();
		valueStr = i.toString();
		
		int x = this.getCurrent().x;
		int y = this.getCurrent().y;
		
		g.drawRoundRect( x, y, 52, 35, 10, 10 );
		g.drawString(valueStr, x+13, y+13);
	}
}
 

KrokoDiehl

Top Contributor
Spontan sage ich mal: Wahrscheinlich hat dein Node-Panel die Größe (0, 0). Probier mir ein
Code:
setSize()
oder überschreibe die Methoden
Code:
getWidth()
und
Code:
getHeight()
.
 
L

Lixor123

Gast
mein Node-Panel ist mein drawPanel und hat drawPanel.setBounds(0, 0, 700, 575); 700x575 Pixel, vorher habe ich in das win.add() geschrieben und das ging, aber nun gibt es probleme
 

KrokoDiehl

Top Contributor
Ich meine diese Zeilen:
Java:
        AVLNode<Integer> aN = new AVLNode<Integer>(88, new Point(150,150));
        
//      drawPanel.add(new Button("w"));
        drawPanel.add( aN );
Code:
aN
ist selbst ein JPanel, bekommt aber nirgends eine Größe zugewiesen. Normalerweise übernimmt das ein LayoutManager, in deinem Fall ist dem aber nicht so. Daher würde ich es mal so probieren:
Java:
        AVLNode<Integer> aN = new AVLNode<Integer>(88, new Point(150,150));
        aN.setSize(50, 50);
//      drawPanel.add(new Button("w"));
        drawPanel.add( aN );
 
L

Lixor123

Gast
danke, aber daran liegt es nicht! Also bekomme keine änderung
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Baum > Baum-Swing Java Basics - Anfänger-Themen 4
D spezifische Knoten in einem Baum zählen Java Basics - Anfänger-Themen 9
HelpInneed Baum ausgeben (aber mal anders) Java Basics - Anfänger-Themen 3
G AVL-Baum Java Basics - Anfänger-Themen 1
G Rot-Schwarz-Baum Java Basics - Anfänger-Themen 8
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
CptK Interface Baum visualisieren Java Basics - Anfänger-Themen 37
CptK Best Practice Merge-Sort als Baum darstellen Java Basics - Anfänger-Themen 3
E Baum pfadweise durchlaufen Java Basics - Anfänger-Themen 11
O Naives links rechts einfügen in ADT Baum Java Basics - Anfänger-Themen 8
L Traversierungsverfahren Baum: LevelOrder Java Basics - Anfänger-Themen 17
L Rekursion im Baum Java Basics - Anfänger-Themen 9
L Baum Knoten zählen Java Basics - Anfänger-Themen 6
L B+Baum innere Knoten erstellen Java Basics - Anfänger-Themen 3
D B-Baum einfügen und löschen Java Basics - Anfänger-Themen 2
F Aufgabe Rekursion Binärer Baum Java Basics - Anfänger-Themen 15
D Werte AVL-Baum löschen Java Basics - Anfänger-Themen 2
M Binären Baum Kinder setzen Java Basics - Anfänger-Themen 12
U 2-3-4 Baum Top-Down Java Basics - Anfänger-Themen 4
U 2-3-4 Baum Top-Down Java Basics - Anfänger-Themen 0
J Überprüfen, ob eine 2D Matrix ein Baum ist Java Basics - Anfänger-Themen 5
R Baum erzeugen Java Basics - Anfänger-Themen 61
B Baum Traversierung Postorder Java Basics - Anfänger-Themen 6
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
A Voller Baum Java Basics - Anfänger-Themen 7
S n-ärer Baum Java Basics - Anfänger-Themen 6
O Unterschied Baum <-> Automat Java Basics - Anfänger-Themen 2
K Tiefen- und Breitensuche beim Baum durch Stack und Warteschlange Java Basics - Anfänger-Themen 1
C kompletter baum Java Basics - Anfänger-Themen 2
M Collections Iterator und generischer Baum Java Basics - Anfänger-Themen 0
M Baum Code kurze frage ... Java Basics - Anfänger-Themen 6
D Ein Objekt in einem Baum finden und ausgeben. Java Basics - Anfänger-Themen 4
K Rot-Schwarz-Baum min und max-Tiefe Java Basics - Anfänger-Themen 1
A min() Methode Baum Java Basics - Anfänger-Themen 1
J Baum rekursiv durchlaufen Java Basics - Anfänger-Themen 2
J Baum Knoten löschen Java Basics - Anfänger-Themen 10
T Baum mit Turtle zeichnen Java Basics - Anfänger-Themen 2
Screen 2,4 Baum Frage Java Basics - Anfänger-Themen 6
T Rot-schwarz Baum Problem Java Basics - Anfänger-Themen 3
A Rekursion in Baum und ArrayList als Rückgabe Java Basics - Anfänger-Themen 2
P Pythagoras Baum - Berechnung der Punkte Java Basics - Anfänger-Themen 9
C 2-3 Baum Java Basics - Anfänger-Themen 6
H Baum Java Basics - Anfänger-Themen 4
L Rot Scharz Baum von Binärbaum erben Java Basics - Anfänger-Themen 9
L eigenen Baum schreiben Java Basics - Anfänger-Themen 5
Luk10 Anzahl der Knoten in einem Baum ausgeben! Java Basics - Anfänger-Themen 6
T Array in einen Baum zu überführen Java Basics - Anfänger-Themen 3
S Das reinschreiben einer Klasse in den Baum Java Basics - Anfänger-Themen 6
H B-Baum: Knoten Position als Parameter oder als Variable im Objekt? Java Basics - Anfänger-Themen 4
A Baum mit geometricfigur Werte Java Basics - Anfänger-Themen 6
D Datentypen Einfügen im RotSchwarz Baum Java Basics - Anfänger-Themen 2
F FileSystem in Baum darstellen/wurzel festlegen Java Basics - Anfänger-Themen 3
G List als Rückgabewert einer rekursiven Methode (Baum) Java Basics - Anfänger-Themen 3
I Baum graphisch darstellen Java Basics - Anfänger-Themen 2
P Binärer Baum mit Composite-Entwurfsmuster Java Basics - Anfänger-Themen 2
Binary.Coder 2-3-4 Baum vs. (2,4) Baum Java Basics - Anfänger-Themen 2
ModellbahnerTT Ab-Baum Applet Java Basics - Anfänger-Themen 3
P Baum-Menü in Java Java Basics - Anfänger-Themen 5
H Baum Java Basics - Anfänger-Themen 11
G AVL Baum Java Basics - Anfänger-Themen 20
J Baum spiegeln Java Basics - Anfänger-Themen 7
N 2-3 Baum, Einfügen Java Basics - Anfänger-Themen 5
G Rekursion mit Return - Baum durchlaufen Java Basics - Anfänger-Themen 4
G Baum Datenstruktur Java Basics - Anfänger-Themen 2
V Baum mit log n Aufwand für Einfügen und Löschen und. Java Basics - Anfänger-Themen 5
H Tiefensuche im binären Baum Java Basics - Anfänger-Themen 2
P Problem mit Darstellung im Baum Java Basics - Anfänger-Themen 4
G Binärer Baum Java Basics - Anfänger-Themen 3
M Binärer Baum Tiefe Java Basics - Anfänger-Themen 14
G universeller baum Java Basics - Anfänger-Themen 13
G Baum testen Java Basics - Anfänger-Themen 20
B Array To Baum Java Basics - Anfänger-Themen 2
B Baum to Array Java Basics - Anfänger-Themen 17
H Löschen in einem binären Baum führt zu einem StackOverflow Java Basics - Anfänger-Themen 2
L Binären Baum speichern Java Basics - Anfänger-Themen 6
R Pythagoras-Baum Java Basics - Anfänger-Themen 5
W Baum durchlaufen Java Basics - Anfänger-Themen 3
T binärer Baum Java Basics - Anfänger-Themen 3
G eine Knoten aus einem Baum löschen. [SOLVED] Java Basics - Anfänger-Themen 7
P allg. Baum aus Liste Java Basics - Anfänger-Themen 2
J String in binären Baum umwandeln Java Basics - Anfänger-Themen 7
R binärer Baum Java Basics - Anfänger-Themen 2
F Abstrakte Klasse Baum Java Basics - Anfänger-Themen 6
J SWING UI Designer und zeichnen Java Basics - Anfänger-Themen 4
G Maven Swing: Wie verwende ich WindowListener ? Java Basics - Anfänger-Themen 2
C Threads und Swing Java Basics - Anfänger-Themen 9
A Swing: Raumshiff Java Basics - Anfänger-Themen 3
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
nbergmann Wo ist javax.swing.JOptionPane gespeichert? Java Basics - Anfänger-Themen 4
StevenGG Java swing "New Integer" Java Basics - Anfänger-Themen 5
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
O ImageIcon, Swing Java Basics - Anfänger-Themen 1
O Swing JPanel Java Basics - Anfänger-Themen 4
F Swing - Fehler - Paint Methode Java Basics - Anfänger-Themen 7
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
mobaer Swing Timer stoppen Java Basics - Anfänger-Themen 3
M Wie kann ich hier ein Textfeld hinzufügen Java Swing? Java Basics - Anfänger-Themen 1
M SpielMenü mit Swing Java Basics - Anfänger-Themen 3
M Wie kann ich eine Eingabe im Java-Swing übergeben? Java Basics - Anfänger-Themen 1
N javax swing JOptionPane Hilfe Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben