Eigenes JPanel

dadevelopa

Mitglied
Hallo zusammen,
ich versuche gerade, ein eigenes Swing- Objekt zu erstellen. Es handelt sich dabei um einen ProgressBar welchen ich von Grund auf selber Programmieren möchte.
Ich habe als Superklasse ein JPanel gewählt. Mein Problem ist nun, dass mein Progressbar immer in der oberen linken Ecke direkt über meine anderen Komponenten gezeichnet wird. Eigentlich möchte ich das Element jedoch als eigenes Objekt mit einem Layoutmanager irgendwo plazieren.

Hier ist der Code des Progress- Bars:

Code:
public class ProgressBar extends JPanel{
	
	private AppletModel model;

	private String label = "";
	
	private int progressBarWidth = 200;
	private int progressBarHeight = 30;

	public ProgressBar(AppletModel model, String label){
		super();
		this.label = label;
		this.model = model;
	}
	
	public void paintComponent(Graphics g){
		super.paintComponent(g);
		Graphics2D graphics = (Graphics2D) g;
		paintProgressBar(graphics);
	}
	
	private void paintProgressBar(Graphics2D graphics){
		graphics.drawString(label, 10, 20);
		graphics.drawLine(0, 0, progressBarWidth, 0);
		graphics.drawLine(0, progressBarHeight, progressBarWidth, progressBarHeight);
		graphics.drawLine(0, 0, 0, progressBarHeight);
	}
}

Wahrscheindlich handelt es sich hier irgendwo um einen sehr sehr dummen Überlegungsfehler meinerseits ;)

Danke trozdem schon einmal im voraus.
 
Hallo,

hab noch nicht ganz verstanden, was dein Problem ist.
Wird dein eigenes Objekt in einem anderen Panel nicht richtig anfgezeit oder
der/die/das ProgressBar in deinem JPanel?

Gruß
 
Hallo,
ein JPanel sollte sich ja via .add() Methode einem anderen Objekt, welches einen Layoutmanager besitzt, hinzufügen lassen. In diesem Fall würde das entsprechende JPanel an einem Ort angezeigt, welcher durch den Layout- Manager definiert wird.
In meinem Fall jedoch ignoriert mein JPanel sowohl den Layout- Manager sowie die Tatsache ob es nun einem anderen Komponent hinzugefügt wurde oder nicht. Sprich sobald mein Progressbar- Objekt instanziert wird, wird es auch gezeichnet, egal ob es bereits mit .add() hinzugefügt wurde oder nicht.
 
Zurück