Hallo zusammen,
ich bin ziemlicher Anfänger in Java und habe ein Problem mit dem Zeichnen in GUI. Ich habe zwei Buttons und möchte erstmal einfach nur ein Viereck oder einen Kreis zeichnen. Wenn ich nun z.B. den Button Kreis anwähle wird in Public void Kreis die Variable KRE auf true gesetzt. Wenn ich nun repaint aufrufe ist KRE in public void paint(graphics) jedoch immer false. Woran liegt das? Die Variable müsste doch innerhalb Public Class Zeichnenpanel zur Verfügung stehen? Danke für Eure Hilfe.
Gruß
Holger
ich bin ziemlicher Anfänger in Java und habe ein Problem mit dem Zeichnen in GUI. Ich habe zwei Buttons und möchte erstmal einfach nur ein Viereck oder einen Kreis zeichnen. Wenn ich nun z.B. den Button Kreis anwähle wird in Public void Kreis die Variable KRE auf true gesetzt. Wenn ich nun repaint aufrufe ist KRE in public void paint(graphics) jedoch immer false. Woran liegt das? Die Variable müsste doch innerhalb Public Class Zeichnenpanel zur Verfügung stehen? Danke für Eure Hilfe.
Gruß
Holger
Java:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class mehrereButtons extends Applet implements ActionListener {
private ZeichnenPanel Zeichnen;
ButtonPanel bp = new ButtonPanel();
ZeichnenPanel zp = new ZeichnenPanel();
Button Viereck = new Button("Viereck zeichnen");
Button Kreis = new Button("Kreis zeichnen");
public void init() {
setLayout(new BorderLayout());
add("South", bp);
add("Center",zp);
bp.add(Viereck);
bp.add(Kreis);
Viereck.addActionListener(this);
Kreis.addActionListener(this);
Zeichnen = new ZeichnenPanel();
}
public void actionPerformed(ActionEvent event) {
if (event.getSource() == Viereck){
System.out.println("Viereckbutton gedrückt");
Zeichnen.Viereck(10);
}
if (event.getSource() == Kreis){
System.out.println("Kreisbutton gedrückt");
Zeichnen.Kreis(20);
}
}
public class ZeichnenPanel extends Panel{
private int mittelpunkt=0;
private boolean Kre,Vi;
public void paint(Graphics g){
zp.setBackground(Color.LIGHT_GRAY);
System.out.println("Variable Vi in public void paint " + Vi);
System.out.println("Variable Kre in public void paint " + Kre);
if (Vi == true)
{
System.out.println("Vi = true");
Zeichnen.zeichvier(g);
}
if (Kre == true)
Zeichnen.zeichkreis(g);
}
public void zeichvier(Graphics g){
g.drawRect(mittelpunkt,100,mittelpunkt,100);
System.out.println(mittelpunkt);
}
public void zeichkreis(Graphics g){
System.out.println("public void zeichkreis");
g.drawOval(100,100,mittelpunkt,mittelpunkt);
}
public void Viereck(int step) {
mittelpunkt = mittelpunkt + step;
Vi = true;
System.out.println("public void viereck ");
System.out.println(Vi);
zp.repaint();
}
public void Kreis(int wert) {
mittelpunkt = mittelpunkt + wert;
Kre = true;
System.out.println("public void kreis");
System.out.println(Kre);
zp.repaint();
}
}
}