Hallo Leute,
mittlerweile klappt das Zeichnen etc. in Java echt gut. Über folgende Zeilen wird das Objekt auch direkt gezeichnet, ohne vorher den "Status" in irgendeiner Form zu ändern oder einen Knopf zu drücken.
Allerdings kann ich aktuell keinen JRadioButton hinzufügen, der unabhängig von den anderen agiert und die Objekte ohne eine weitere Aktion füllt.
Wisst ihr hier zufällig weiter?
Durch Unterstützung bin ich das letzte Mal an diese Form der actionperformed Methode und die Funktion activate Button gekommen. Diese sollten also erhalten bleiben.
Es soll an einer Stelle ein JRadioButton angefügt werden, der die Objekte wie gesagt, ohne eine weitere Aktion/Operation ausfüllt.
PS: Die activateButtons stammt dabei im Gegensatz zur activateButton von mir. Auch die half nicht weiter.
Weiß hier zufällig jemand Abhilfe? Bisher habe ich hierzu noch keine Lösunge gefunden.
Ich versuchs aber weiter.
Vielen Dank schon einmal.
Hier ist der Code
mittlerweile klappt das Zeichnen etc. in Java echt gut. Über folgende Zeilen wird das Objekt auch direkt gezeichnet, ohne vorher den "Status" in irgendeiner Form zu ändern oder einen Knopf zu drücken.
Allerdings kann ich aktuell keinen JRadioButton hinzufügen, der unabhängig von den anderen agiert und die Objekte ohne eine weitere Aktion füllt.
Wisst ihr hier zufällig weiter?
Durch Unterstützung bin ich das letzte Mal an diese Form der actionperformed Methode und die Funktion activate Button gekommen. Diese sollten also erhalten bleiben.
Es soll an einer Stelle ein JRadioButton angefügt werden, der die Objekte wie gesagt, ohne eine weitere Aktion/Operation ausfüllt.
PS: Die activateButtons stammt dabei im Gegensatz zur activateButton von mir. Auch die half nicht weiter.
Weiß hier zufällig jemand Abhilfe? Bisher habe ich hierzu noch keine Lösunge gefunden.
Ich versuchs aber weiter.
Vielen Dank schon einmal.
Hier ist der Code
Java:
public class anzeigen extends JFrame implements ActionListener{
JRadioButton sign1=new JRadioButton("oval"),sign2=new JRadioButton("rect"),
sign3=new JRadioButton("double oval"),empty=new JRadioButton("empty"),
fuellen=new JRadioButton("füllen");
JPanel panel=new JPanel();
ButtonGroup bg=new ButtonGroup(),bg2=new ButtonGroup();
public static final int BUTTONS=4;
public static final int BUTTON_1=0;
public static final int BUTTON_2=1;
public static final int BUTTON_3=2;
public static final int BUTTON_4=3;
JRadioButton[] btns=new JRadioButton[BUTTONS];
Zeichnen z=new Zeichnen();
Container c;
public anzeigen() {
c=getContentPane();
setSize(1200, 800);
for(int i=0;i<BUTTONS;i++){
btns[i]=new JRadioButton();
btns[0]=new JRadioButton();
btns[0]=sign1;
btns[1]=new JRadioButton();
btns[1]=sign2;
btns[2]=new JRadioButton();
btns[2]=sign3;
btns[3]=new JRadioButton();
btns[3]=empty;
bg.add(btns[i]);
btns[i].addActionListener(this);
panel.add(btns[i]);
}
panel.add(fuellen);
c.add(panel,BorderLayout.SOUTH);
c.add(z,BorderLayout.CENTER);
setLocation(0, 0);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void activateButton(JRadioButton button,int auswahl){
button.setSelected(true);
z.setAuswahl(auswahl);
}
private void activateButtons(JRadioButton button,int auswahl,boolean stat){
// button.setSelected(true);
z.setAuswahl(auswahl);
z.setFuellstatus(true);
}
public static void main(String[] args) {
new anzeigen();
}
@Override
public void actionPerformed(ActionEvent e) {
Object btn=e.getSource();
for(JRadioButton b : btns)
b.setSelected(false);
if(btn==btns[BUTTON_1])
activateButton(btns[BUTTON_1],BUTTON_1);
else if((btn==btns[BUTTON_1])&&(fuellen.isEnabled()))
activateButtons(btns[BUTTON_1], BUTTON_1, z.status==true);
if(btn==btns[BUTTON_2])
activateButton(btns[BUTTON_2],BUTTON_2);
else if((btn==btns[BUTTON_2])&&(z.status==true))
activateButtons(btns[BUTTON_2], BUTTON_2, z.status);
if(btn==btns[BUTTON_3])
activateButton(btns[BUTTON_3],BUTTON_3);
else if((btn==btns[BUTTON_3])&&(z.status==true))
activateButtons(btns[BUTTON_3], BUTTON_3, z.status);
if(btn==btns[BUTTON_4])
activateButton(btns[BUTTON_4],BUTTON_4);
repaint();
}
}
class Zeichnen extends JPanel{
int auswahl;
boolean status=false;
public void setAuswahl(int a){
auswahl=a;
}
public void setFuellstatus(boolean st){
status=st;
}
public Zeichnen() {
auswahl=0;
// status=false;
setVisible(true);
}
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
switch (auswahl) {
case 0:
if(status)
g.drawOval(30, 30, 130, 130);
else
g.fillOval(30, 30, 130, 130);
break;
case 1:
if(status)
g.drawRect(40, 40, 440, 640);
else
g.fillRect(40, 40, 440, 640);
break;
case 2:
if(status){
g.drawOval(30, 30, 130, 130);
g.drawOval(190, 30, 130, 130);
}else{
g.fillOval(30, 30, 130, 130);
g.fillOval(190, 30, 130, 130);
}
break;
case 3:
g.setColor(Color.WHITE);
g.fillRect(0,0,getWidth(),getHeight());
break;
default:
auswahl=4;
break;
}
}
}
Zuletzt bearbeitet von einem Moderator: