Radiobuttons

Status
Nicht offen für weitere Antworten.
A

ayk

Gast
Hi,

ich hab jetzt mein Taschenrechner etwas verbessert.
eins fehlt mir noch, und zwar wie ich den erweiterungs Menüpunkt in zwei Radiobuttons machen kann. also zum hin und her schalten.

wenn euch noch was auffällt, wie ich insgesamt den rechner noch besser machen kann, würd ich mich freuen

gruß ayk

Code:
import java.awt.*; 
import java.awt.event.*; 

public class Taschenrechner extends Frame implements WindowListener, 
ActionListener {
	Label l1; 
	TextField Anzeige;
  	TextArea Txt2; 
  	Checkbox cb = new Checkbox("Checkbox 1"); 

   	Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, bplus, bminus, bmal, ew,
    bgleich, bpunkt, bclear, bgeteilt; 
   	Menu mMenu;
	MenuItem erweitern;

   	boolean Rechne = true; 
   	double Zahl = 0; 
   	String Operation = ""; 

   	/** 
    * erstellt die Oberflaeche des Taschenrechners 
    */ 
   	public Taschenrechner()   { 
   		   
      	Frame window = new Frame(""); 
        this.addWindowListener(this); 
        this.setTitle("Roche"); 
        this.setLocation(200, 200); 
        this.setSize(165, 280); 
        this.setVisible(true); 
        this.setResizable( false ); 
      
      	//Textfeld für die Erweiterung
		Txt2= new TextArea("");
		Txt2.setSize(125, 200); 
		Txt2.setLocation(180,60);
		Txt2.setEditable(false);
		Txt2.setVisible(true); 
		Txt2.setText("Die Rechnungen:");
		this.add(Txt2);

	    /** 
	     * erstellt das Anzeigefeld des Taschenrechners 
	     */ 
	    Anzeige = new TextField(""); 
	    Anzeige.setSize(125, 20); 
	    Anzeige.setLocation(20, 60); 
	    Anzeige.setEditable(false); 
	    Anzeige.setBackground(Color.white); 


      this.add(Anzeige); 
      /** 
       * erstellt die Buttons (0-9) des Taschenrechners 
       */ 
      	b7 = new Button("7"); b7.setLocation(20, 110); this.add(b7); 
      	b8 = new Button("8"); b8.setLocation(50, 100); this.add(b8); 
      	b9 = new Button("9"); b9.setLocation(80, 110); this.add(b9); 
      	b4 = new Button("4"); b4.setLocation(20, 140); this.add(b4); 
		b5 = new Button("5"); b5.setLocation(50, 130); this.add(b5); 
		b6 = new Button("6"); b6.setLocation(80, 140); this.add(b6); 
		b1 = new Button("1"); b1.setLocation(20, 170); this.add(b1); 
		b2 = new Button("2"); b2.setLocation(50, 160); this.add(b2); 
		b3 = new Button("3"); b3.setLocation(80, 170); this.add(b3); 
		b0 = new Button("0"); b0.setLocation(50, 190); this.add(b0); 
		bclear = new Button("C"); bclear.setLocation(20, 90); this.add(bclear);
		bplus =  new Button("+"); bplus.setLocation(115, 190); this.add(bplus);
		bminus = new Button("-"); bminus.setLocation(115, 130);this.add(bminus); 
		bpunkt = new Button("."); bpunkt.setLocation(20, 220); this.add(bpunkt); 
		bgleich = new Button("="); bgleich.setLocation(52, 220); this.add(bgleich); 
		bmal = new Button("*"); bmal.setLocation(115, 160); this.add(bmal); 
		bgeteilt = new Button("/"); bgeteilt.setLocation(115, 100); this.add(bgeteilt); 
      
	    b9.addActionListener(this); 
	    b8.addActionListener(this); 
	    b7.addActionListener(this); 
	    b6.addActionListener(this); 
	    b5.addActionListener(this); 
	    b4.addActionListener(this); 
	    b3.addActionListener(this); 
	    b2.addActionListener(this); 
	    b1.addActionListener(this); 
	    b0.addActionListener(this); 
	    bgeteilt.addActionListener(this); 
	    bmal.addActionListener(this); 
	    bgleich.addActionListener(this); 
	    bpunkt.addActionListener(this); 
	    bminus.addActionListener(this); 
	    bplus.addActionListener(this); 
		bclear.addActionListener(this); 

		b9.setSize(30, 25); b8.setSize(30, 25); b7.setSize(30, 25); b6.setSize(30, 25); 
	    b5.setSize(30, 25); b4.setSize(30, 25); b3.setSize(30, 25); b2.setSize(30, 25); 
	    b1.setSize(30, 25); b0.setSize(30, 25); 
	    bgeteilt.setSize(30, 25); bmal.setSize(30, 25); bgleich.setSize(60, 25); 
	    bpunkt.setSize(30, 25); bminus.setSize(30, 25); bplus.setSize(30, 55); bclear.setSize(20, 15); 

      /** 
       * Farbe der Buttons 
       */ 
      b9.setBackground(Color.white); b8.setBackground(Color.white); b7.setBackground(Color.white); 
      b6.setBackground(Color.white); b5.setBackground(Color.white); b4.setBackground(Color.white); 
      b3.setBackground(Color.white); b2.setBackground(Color.white); b1.setBackground(Color.white); 
      b0.setBackground(Color.white); 
      bclear.setBackground(Color.red); bgeteilt.setBackground(Color.red); bmal.setBackground(Color.red); 
      bgleich.setBackground(Color.red); bpunkt.setBackground(Color.red); bminus.setBackground(Color.red); 
      bplus.setBackground(Color.red); 
      
		//Menübar und Einträge		
		MenuBar mMenuBar = new MenuBar();
		setMenuBar(mMenuBar); 
		mMenuBar.add(mMenu = new Menu ("Anzeige"));
		mMenu.add(erweitern = new MenuItem ("erweitern"));
		erweitern.addActionListener(this);
      

   }//Ende Taschenrechner 

   /** 
    * Wird aufgerufen, wenn das Fenster geschlossen wird 
    */ 
   public void windowClosing(WindowEvent e) {System.exit(0);} 

   /** 
    * Wird aufgerufen, wenn das Fenster aktiviert wird 
    */ 
   public void windowActivated(WindowEvent e) {} 

   /** 
    * Wird aufgerufen, wenn das Fenster mit dispose() geschlossen wurde 
    */ 
   public void windowClosed(WindowEvent e) {} 

   /** 
    * Wird aufgerufen, wenn das Fenster deaktiviert wird 
    */ 
   public void windowDeactivated(WindowEvent e) {} 

   /** 
    * Wird aufgerufen, wenn das Fenster wieder hochgeholt wird 
    */ 
   public void windowDeiconified(WindowEvent e) {} 

   /** 
    * Wird aufgerufen, wenn das Fenster zum Icon verkleinert wird 
    */ 
   public void windowIconified(WindowEvent e) {} 

   /** 
    * Wird aufgerufen, wenn Fenster geöffnet wurde 
    */ 
   public void windowOpened(WindowEvent e) {} 

   /** 
    * Erkennung von Eingaben 
    */ 
   	public void actionPerformed(ActionEvent ea) { 
    	int h; 
      	String inh = new String(); 

      	String but = ea.getActionCommand(); 
		if (but=="0"||but=="1"||but=="2"||but=="3"||but=="4"||
		     	 but=="5"||but=="6"||but=="7"||but=="8"||but=="9"){ziffer(but);}
		else if (but=="+"||but=="-"||but=="*"||but=="/"){verkn(but);}
		else if (but==".") { 
         	if(Rechne) { 
            	Anzeige.setText("0."); 
            	Rechne = false; 
         	} 
        	else { 
        		inh = new String(Anzeige.getText()); 
            	h = inh.indexOf("."); 
            	if(h < 0) { 
	            	Anzeige.setText(Anzeige.getText() + "."); 
    	        }
       		}//else 
      	} 
      	else if(but == "C") { 
         	Anzeige.setText("");
         	Rechne = true; 
         	Zahl = 0; 
         	Operation = ""; 
      	} 
      	else if(but == "=") { 
         	verkn(""); 
      	} 
      	else if (but=="erweitern") {this.setSize(340, 280);}
	}//Ende actionPerformed 

   /** 
    * schreib in Display 
    */ 
   public void ziffer(String s) {
         if(Rechne) { 
         Txt2.setText(Txt2.getText() + "\n");
         Anzeige.setText(s); 
         Rechne = false; 
      } 
      else { 
         String inh = new String(Anzeige.getText()); 
         /** zähle die Punkte* */ 
         int h = inh.indexOf("."); 
         /** bei 6 ohne punkt oder 25 mit punkt* */ 
         if(((h < 0) && (inh.length() < 6)) 
               || ((h > 0) && (inh.length() < 25))) 
            Anzeige.setText(Anzeige.getText() + s); 
         else 
            return; 
      }
      Txt2.setText(Txt2.getText() + s); 
   }//Ende ziffer 

   /** 
    * durchführung der Rechnung 
    */ 
   public void verkn(String s) {
   	  Txt2.setText(Txt2.getText() + "\n" + s);
      Double wert; 
      Rechne = true; 
      try { 
         if(Operation == "") { 
            wert = new Double(Anzeige.getText()); 
            Zahl = wert.doubleValue(); 
            Operation = s; 
         } 
         else { 
            wert = new Double(Anzeige.getText()); 
            if(Operation == "+") { 
               Zahl = Zahl + wert.doubleValue(); 
            } 
            else if(Operation == "-") { 
               Zahl = Zahl - wert.doubleValue(); 
            } 
            else if(Operation == "*") { 
               Zahl = Zahl * wert.doubleValue(); 
            } 
            else if(Operation == "/") { 
               Zahl = Zahl / wert.doubleValue(); 
            } 
            Operation = s; 
            Anzeige.setText(s.valueOf(Zahl)); 
            Txt2.setText(Txt2.getText() + "=" + s.valueOf(Zahl));
         }
            
      }//try 
      catch (ArithmeticException e) { 
         Anzeige.setText("Error:" + e); 
         ziffer(""); 
      } 
      catch (Throwable e) { 
         Anzeige.setText("Fehler:" + e); 
         ziffer(""); 
      } 
   }//Ende verkn 
	public void erwt(){
		this.setSize(300, 300); 
	}

   /** 
    * main 
    */ 
   public static void main(String[] args) { 
      Taschenrechner meinFenster = new Taschenrechner(); 
   }//Ende main 


   public void keyReleased(KeyEvent e) {} 

   public void keyTyped(KeyEvent e) {} 
   
}
 

The_S

Top Contributor
Ich würd sagen du legst beide Buttons in ne ButtonGroup und wenn erweitert ausgewählt ist fügst du ein paar Elemente hinzu, falls nicht löscht du ein paar aus deiner GUI raus oder hab ich das jetzt falsch verstanden?
 

niemand

Bekanntes Mitglied
Ich bin dafür, dass die Leute, die ihre Programme vorstellen, gleichzeitig ein *.jar zur Verfügung stellen, in dem die Sourcen und die fertigen Klassen sind - bin immer zu faul, soo lange Sourcen zu kopieren und kompilieren ^^

cu
 

Illuvatar

Top Contributor
Also bei mir dauert das Copy+Paste+Compile 10 Sekunden und ist damit deutlich weniger umständlich als runterladen/irgendwohinkopieren/draufklicken/entpacken und sources anschauen ;)
 
A

ayk

Gast
tut mir leid, hab das mit den radiobuttons nicht verstanden.
kannst du vieleicht die entsprechenden zeilen posten

oder vieleicht könnte man es auch über eine checkbox machen. aber ich will es oben in dem menu drin
 

niemand

Bekanntes Mitglied
ayk, du erzeugst ein ButtonGroup-Objekt und fügst die Radiobuttons hinzu. Anschließend fügst du die Buttons (nicht die Buttongroup) dem entsprechenden Panel hinzu.

Illuvatar, bei mir dauert alleine das Markieren schon 7 Sekunden (durch das Scrollen). Naja, bin auch kein Mausprofi ;)

cu
 

The_S

Top Contributor
niemand hat gesagt.:
ayk, du erzeugst ein ButtonGroup-Objekt und fügst die Radiobuttons hinzu. Anschließend fügst du die Buttons (nicht die Buttongroup) dem entsprechenden Panel hinzu.

Schöner hät ichs net sagen können :wink:

niemand hat gesagt.:
Illuvatar, bei mir dauert alleine das Markieren schon 7 Sekunden (durch das Scrollen). Naja, bin auch kein Mausprofi ;)

Copy-Paste ist besser :wink: !

Und für dich ayk:

Code:
JRadioButton erweitert = new JRadioButton("erweitert");
JRadioButton einfach = new JRadioButton("einfach");
ButtonGroup gruppe = new ButtonGroup();
gruppe.add(erweitert);
gruppe.add(einfach);

Und dann die RadioButtons einfach hinzufügen
 
A

ayk

Gast
tut mir leid, so ganz hab ich es jetz noch nicht verstanden,
kannst du nicht mal den geänderten quelltext posten :oops:
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben