Hallo, ich will mit dem Programm ChoiceRadio eine Ereignisverarbeitung realsieren, welche dafür sorgt, dass bei Anwahl eines Radiobuttons das Oval an der entsprechenden Position (links oben, rechts oben,
usw.) im rechten Bereich angezeigt wird.
Leider schaffe ich es nicht die Koordinaten in der actionPerformed()-Methode zu ändern, sodass der grüne Punkt in eine andere Ecke "springt".
Hat jmd ne Idee?
usw.) im rechten Bereich angezeigt wird.
Leider schaffe ich es nicht die Koordinaten in der actionPerformed()-Methode zu ändern, sodass der grüne Punkt in eine andere Ecke "springt".
Hat jmd ne Idee?
Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class ChoiceRadio extends JApplet implements ActionListener {
MyCan can = new MyCan();
JRadioButton lo, ro, lu, ru;
int width = 50;
int heigth = 50;
int positionX;
int positionY;
public int getPositionX() {
return positionX;
}
public void setPositionX(int positionX) {
this.positionX = positionX;
}
public int getPositionY() {
return positionY;
}
public void setPositionY(int positionY) {
this.positionY = positionY;
}
JPanel pane = new JPanel();
JPanel pan1 = new JPanel();
public void init() {
pane.setLayout(new GridLayout(1, 2, 10, 10));
pan1.setLayout(new GridLayout(4, 2, 20, 20));
ButtonGroup bg = new ButtonGroup();
lo = new JRadioButton("links oben", true);
ro = new JRadioButton("rechts oben", false);
lu = new JRadioButton("links unten", false);
ru = new JRadioButton("rechts unten", false);
bg.add(lo);
bg.add(ro);
bg.add(lu);
bg.add(ru);
pan1.add(lo);
pan1.add(ro);
pan1.add(lu);
pan1.add(ru);
lo.addActionListener(this);
ro.addActionListener(this);
lu.addActionListener(this);
ru.addActionListener(this);
pane.add(pan1);
pane.add(can);
setContentPane(pane);
}
public class MyCan extends Canvas {
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.green);
g.fillOval(getPositionX(), getPositionY(), width, heigth);
}
}
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if (source == ro) {
setPositionX(50);
setPositionY(0);
} else if (source == lo) {
setPositionX(0);
setPositionY(0);
} else if (source == lu) {
setPositionX(0);
setPositionY(100);
} else
setPositionX(50);
setPositionY(100);
repaint();
}
}
Zuletzt bearbeitet: