Hey an alle,
ich habe mal wieder ein kleineres Problem.
Ich habe mit Swing eine Anwendung erstellt, mit der die geometrischen Figuren Quadrat oder
Kreis in den Farben rot, grün oder blau angezeigt werden können. Mein JFrame hat ein BorderLayout. Ich habe eine Unterklasse von JPanel innerhalb des JFrames für den
Zeichenflächenbereich definiert und meine Paint-Methode so überschrieben, dass sie abhängig von der Einstellung der Radiobuttons und der Größe des Panels die geometrische Figur in passender Größe zeichnet.
Die RadioButtons habe ich in ein Panel(gridLayout) eingefügt und es in meinem BorderLayout WEST platziert.
Nehmen wir an ich aktiviere die RadioButtons Form: Rechteck und Farbe: Rot , dann sehe ich das rote Rechteck erst nachdem ich mein Fenster mit der Maus einmal größer oder kleiner gezogen habe...
Ich hätte aber gern, dass sobald ich zB. Grün anklicke es mir direkt das grüne Rechteck anzeigt ohne mein Frame davor vergrößern oder verkleinern zu müssen.
panel.repaint(); funktioniert auch nicht wie erwünscht.
Hier mal die überschriebene paint-methode
Bin über jeden Tipp dankbar
Grüße
Mikesh
ich habe mal wieder ein kleineres Problem.
Ich habe mit Swing eine Anwendung erstellt, mit der die geometrischen Figuren Quadrat oder
Kreis in den Farben rot, grün oder blau angezeigt werden können. Mein JFrame hat ein BorderLayout. Ich habe eine Unterklasse von JPanel innerhalb des JFrames für den
Zeichenflächenbereich definiert und meine Paint-Methode so überschrieben, dass sie abhängig von der Einstellung der Radiobuttons und der Größe des Panels die geometrische Figur in passender Größe zeichnet.
Die RadioButtons habe ich in ein Panel(gridLayout) eingefügt und es in meinem BorderLayout WEST platziert.
Nehmen wir an ich aktiviere die RadioButtons Form: Rechteck und Farbe: Rot , dann sehe ich das rote Rechteck erst nachdem ich mein Fenster mit der Maus einmal größer oder kleiner gezogen habe...
Ich hätte aber gern, dass sobald ich zB. Grün anklicke es mir direkt das grüne Rechteck anzeigt ohne mein Frame davor vergrößern oder verkleinern zu müssen.
panel.repaint(); funktioniert auch nicht wie erwünscht.
Hier mal die überschriebene paint-methode
Java:
private class PaintPanel extends JPanel {
@Override
public void paint(Graphics g) {
if (jRbRect.isSelected() == true) {
if (jRbRot.isSelected() == true) {
g.setColor(Color.RED);
} else if (jRbGrün.isSelected() == true) {
g.setColor(Color.GREEN);
} else if (jRbBlau.isSelected() == true) {
g.setColor(Color.BLUE);
}
g.fillRect(50, 50, panel1.getWidth() - 100,
panel1.getHeight() - 100);
} else if (jRbOv.isSelected() == true) {
if (jRbRot.isSelected() == true) {
g.setColor(Color.RED);
} else if (jRbGrün.isSelected() == true) {
g.setColor(Color.GREEN);
} else if (jRbBlau.isSelected() == true) {
g.setColor(Color.BLUE);
}
g.fillOval(50, 50, panel1.getWidth() - 100,
panel1.getHeight() - 100);
}
}
}
Bin über jeden Tipp dankbar
Grüße
Mikesh