2016-11-05 3 views
0

Ich frage mich, wie ich die zweite drawOval verstecken kann, wenn ich die Checkbox:JPanel Checkbox

public void paintComponent(Graphics g) { 
     super.paintComponent(g); 
      g.drawOval(175, 185, 80, 45); 
      g.drawOval(170, 185, 80, 45); 

Ich bin ein Anfänger in Java, und ich kann nicht finden, wie dies zu verbergen.

So spezifischere

Ich habe eine Checkbox in der Designpaneelteil und sein, wenn ich die der zweite drawOval verschwinden sollte Checkbox anklicken.

Und kann das mit 6 Zeilen funktionieren?

Antwort

3

Und kann das mit 6 Zeilen funktionieren?

Nein, Sie müssen diesen Code ändern. Verschieben Sie die drawOval-Zeile, die Sie zeichnen oder nicht zeichnen möchten, basierend auf dem Kontrollkästchen in einem if-Block. Innerhalb des if boolean Tests - überprüfen Sie, ob die JCheckBox aktiviert ist, und wenn ja, zeichnen Sie das Oval. Wenn nicht, zeichne es nicht - einfach!

if (myCheckBox.isSelected()) { 
    g.drawOval(....) 
} 

auch eine Action zum JCheckBox hinzufügen, die eine Sache tut: ruft repaint() auf dem JPanel.

+0

das hat funktioniert, danke! – Ditger

+1

@Ditger: Ich bin nicht klar, was Sie fragen, aber im Allgemeinen, wenn Sie möchten, dass Code nur ausgeführt wird, wenn eine bestimmte Bedingung wahr ist, verwenden Sie einen if-Block oder seine if-else und anderen Varianten, um das Programm zu steuern fließen. Weiter so. –

+0

ich reparierte es auf eigene Faust: D – Ditger