import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class SzamolApplet extends Applet implements ActionListener, TextListener {
public TextField x=new TextField(); //egysoros szövegdoboz létrehozása
public Label op=new Label("?"); //címkedoboz létrehozása
public TextField y=new TextField();
public Label eq=new Label("=");
public TextField z=new TextField();
public Button plus=new Button("x+y"); //gomb létrehozása
public Button minus=new Button("x-y");
public Button mul=new Button("x*y");
public Button div=new Button("x/y");
public Button pow=new Button("x^y");
private int bpos=5,bwidth=50;
private Font f=new Font("Courier",Font.BOLD,12);
public void init() {
setBackground(new Color(255, 175, 175)); //pink
setLayout(null); //automatikus elrendezés kikapcsolása
x.setBackground(new Color(160, 255, 255)); //~lightcyan
x.setBounds(5,5,50,20); //az x szövegdoboz határainak beállítása
add(x);
x.addTextListener(this);
op.setBounds(60,5,20,20);
op.setAlignment(Label.CENTER);
add(op);
y.setBackground(new Color(160, 255, 255)); //~lightcyan
y.setBounds(85,5,50,20); //az y szövegdoboz határainak beállítása
add(y);
y.addTextListener(this);
eq.setBounds(144,5,20,20);
eq.setAlignment(Label.CENTER);
add(eq);
z.setBackground(new Color(160, 255, 255)); //~lightcyan
z.setBounds(172,5,103,20);
add(z);
// műveleteket végrehajtó gombok
plus.setBackground(new Color(192, 192, 192)); //lightgray
plus.setFont(f);
plus.setBounds(5,35,bwidth,20);
bpos+=bwidth+5;
add(plus);
plus.setActionCommand("+");
plus.addActionListener(this); //gomb lenyomásának figyelése
minus.setBackground(new Color(192, 192, 192)); //lightgray
minus.setFont(f);
minus.setBounds(bpos,35,bwidth,20);
bpos+=bwidth+5;
add(minus);
minus.setActionCommand("-");
minus.addActionListener(this); //gomb lenyomásának figyelése
mul.setBackground(new Color(192, 192, 192)); //lightgray
mul.setFont(f);
mul.setBounds(bpos,35,bwidth,20);
bpos+=bwidth+5;
add(mul);
mul.setActionCommand("*");
mul.addActionListener(this); //gomb lenyomásának figyelése
div.setBackground(new Color(192, 192, 192)); //lightgray
div.setFont(f);
div.setBounds(bpos,35,bwidth,20);
bpos+=bwidth+5;
add(div);
div.setActionCommand("/");
div.addActionListener(this); //gomb lenyomásának figyelése
pow.setBackground(new Color(192, 192, 192)); //lightgray
pow.setFont(f);
pow.setBounds(bpos,35,bwidth,20);
bpos+=bwidth+5;
add(pow);
pow.setActionCommand("^");
pow.addActionListener(this); //gomb lenyomásának figyelése
}
public void actionPerformed(ActionEvent ev) {
double a,b;
try {
a=(new Double(x.getText())).doubleValue(); //konvertálás valós számmá
b=(new Double(y.getText())).doubleValue(); //konvertálás valós számmá
switch(ev.getActionCommand().charAt(0)) {
case '+':
op.setText("+");
z.setText(""+(a+b)); //szöveg beírása a z szövegdobozba
break;
case '-':
op.setText("-");
z.setText(""+(a-b)); //szöveg beírása a z szövegdobozba
break;
case '*':
op.setText("*");
z.setText(""+(a*b)); //szöveg beírása a z szövegdobozba
break;
case '/':
op.setText("/");
z.setText(""+(a/b)); //szöveg beírása a z szövegdobozba
break;
case '^':
op.setText("^");
z.setText(""+Math.pow(a,b)); //szöveg beírása a z szövegdobozba
break;
}
}
catch(Exception ex) {
z.setText("Hiba!");
}
validate(); //a változások érvényesítése
}
public void textValueChanged(TextEvent ev) {
op.setText("?");
z.setText(""); //megváltozott x vagy y értéke, ezért a korábbi eredmény törlődik
}
public void paint(Graphics g) {
g.setFont(new Font("Courier NEW CE",Font.BOLD,14));
g.drawString("Számológép 1.0",5,80);
}
}
Nincsenek megjegyzések:
Megjegyzés küldése