Ich habe für ein JPanel die paint() Methode überschrieben, um diverse Sachen auf das Panel zu zeichnen. Nach einigen Versuchen habe ich herausbekommen, dass dieses Überschreiben der Grund ist, warum nun ein JButton, den ich dem Panel hinzufüge, nicht angezeigt wird. Er existiert aber, denn wenn ich da hin klicke, wo er sich befinden müsste, wird er plötzlich angezeigt. Wie bekomme ich es nun hin, den Button auch noch zeichnen zu lassen? Ich vermute das muss auch in der paint() Methode geschehen? paintComponent() klingt ja ganz gut, ist ja aber leider protected...
Das ist natürlich nicht der komplette Code, nur ein Auszug, ich hoffe das reicht, um das Problem zu veranschaulichen. Wie im Quelltext steht, mit den Update-Methoden bin ich mir immer sehr unsicher und muss mehr oder weniger probieren, was klappt. Könnte mir jemand vllt in Kürze den Unterschied erklären? :roll:
Code:
public class Beispiel extends JPanel
@Override
public void paint(Graphics g)
{
//nur als Beispiel...
g.clearRect(0,0,this.getWidth(),this.getHeight());
g.setColor(Color.YELLOW);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
}
public void addOutput(g string)
{
JButton bTest = new JButton("test");
bTest.setVisible(true);
bTest.setBounds(0,0,100,100);
this.add(bTest);
//welche von diesen drei Methoden müsste ich hier verwenden? Ich seh da immer nicht richtig durch...
this.update(this.getGraphics());
this.updateUI();
this.repaint();
}
Das ist natürlich nicht der komplette Code, nur ein Auszug, ich hoffe das reicht, um das Problem zu veranschaulichen. Wie im Quelltext steht, mit den Update-Methoden bin ich mir immer sehr unsicher und muss mehr oder weniger probieren, was klappt. Könnte mir jemand vllt in Kürze den Unterschied erklären? :roll: