-
Calculator help plz..i really need help!
ok so im making a Calculator..and i got the graphic part..and id ont know how to do the math..
i got 2 files one for the graphic..and the other for the math..for like the caluction
import java.awt.*;
import java.awt.event.*;
public class Calculatorsgui extends Frame implements WindowListener
{
protected Button plus, subract, times, divide, exitButton;
protected TextField input1, input2, answer;
private Calculatorsgui controller;
public Calculatorsgui ()
{
setTitle ("Calculator"); // Set the frame's name
setLayout (new FlowLayout (FlowLayout.CENTER));
setSize (180, 180); // Set the frame's size
// SimpleController is a class that handles the button clicks
CalculatorsController controller = new CalculatorsController (this);
// Adding an empty non-editable text field
Label l = new Label ("Number1");
add ("South", l);
input1 = new TextField (10);
input1.setEditable (true);
add ("Center", input1);
Label a = new Label ("Number2");
add ("South", a);
input2 = new TextField (10);
input2.setEditable (true);
add ("Center", input2);
// add buttons to the frame and connect the controller to it
plus = new Button ("+");
plus.addActionListener (controller);
add (plus);
subract = new Button ("-");
subract.addActionListener (controller);
add (subract);
times = new Button ("*");
times.addActionListener (controller);
add (times);
divide = new Button ("/");
divide.addActionListener (controller);
add (divide);
Label b = new Label ("The Answer");
add ("South", b);
answer = new TextField (10);
answer.setEditable (false);
add ("Center", answer);
exitButton = new Button ("exit");
exitButton.addActionListener (controller);
add (exitButton);
// Make the frame handle window events
addWindowListener (this);
show (); // Show the frame or use setVisible (true)
} // Constructor
public void paint (Graphics g)
{
// Place the drawing code here
} // paint method
public void windowDeiconified (WindowEvent event)
{
}
public void windowIconified (WindowEvent event)
{
}
public void windowActivated (WindowEvent event)
{
}
public void windowDeactivated (WindowEvent event)
{
}
public void windowClosed (WindowEvent event)
{
}
public void windowClosing (WindowEvent event)
{
System.exit (0);
}
public void windowOpened (WindowEvent event)
{
}
public static void main (String[] args)
{
new Calculatorsgui (); // Create a SimpleExample frame
} // main method
}
then for my sencond file..i have no idea wat to do!this is wat i got..i need adding..and divide..and subtract
import java.awt.*;
import java.awt.event.*;
public class CalculatorsController implements ActionListener
{
Calculatorsgui view;
public CalculatorsController (Calculatorsgui view)
{
this.view = view;
}
public void actionPerformed (ActionEvent event)
{
// You can get the source object of an event
Object source = event.getSource ();
//You can compare the event source with actual objects.
if (source == view.exitButton)
System.exit (0);
so if anyone can do thing for me..u be my hero..no JOKES!!!!!!!!!! PLEASE HELP ..im on my knees
-
First, you cannot add components to a flowlayout container using borderlayout constraints (north, south,
east,west and center), and if you use borderlayout
you cannot add more than 5 components, one for each
place.
If you want to respond to buttonclicks then the usual
approach is to let the frame implement the
ActionListener interface. You don't have to make a
special class for listening to events, any class can do that, as long as it implements the event's listener interface.
Leaving out the number-keypad solution your code could
be done like this:
Code:
import java.awt.*;
import java.awt.event.*;
class Calculatorsgui extends Frame implements ActionListener {
protected Button plus, subract, times, divide, exitButton;
protected TextField input1, input2, answer;
public static void main(String[] args) {
Calculatorsgui view = new Calculatorsgui();
}
/**
* Constructor
*/
public Calculatorsgui() {
setTitle("Calculator"); // Set the frame's name
setLayout(new FlowLayout(FlowLayout.CENTER));
setSize(180, 180); // Set the frame's size
// Adding an empty non-editable text field
Label lb1 = new Label("Number1");
add(lb1);
input1 = new TextField(10);
add(input1);
Label lb2 = new Label("Number2");
add(lb2);
input2 = new TextField(10);
input2.setEditable(true);
add(input2);
// add buttons to the frame and connect the controller to it
plus = new Button("+");
plus.addActionListener(this);
add(plus);
subract = new Button("-");
subract.addActionListener(this);
add(subract);
times = new Button("*");
times.addActionListener(this);
add(times);
divide = new Button("/");
divide.addActionListener(this);
add(divide);
Label lbl3 = new Label("The Answer");
add(lbl3);
answer = new TextField(10);
answer.setEditable(false);
add(answer);
exitButton = new Button("exit");
exitButton.addActionListener(this);
add(exitButton);
setVisible(true); // show() is deprecated....
}
private void calculate (Button btn) {
try {
double num1 = Double.parseDouble(input1.getText().trim());
double num2 = Double.parseDouble(input2.getText().trim());
if (btn==plus) {
answer.setText(Double.toString(num1+num2));
} else if (btn==subract) {
answer.setText(Double.toString(num1-num2));
} else if (btn==times) {
answer.setText(Double.toString(num1*num2));
} else if (btn==divide) {
if (num2==0.0d) {
answer.setText("div by 0 !");
} else {
answer.setText(Double.toString(num1/num2));
}
}
}
catch (NumberFormatException ex) {
answer.setText("*bad input*");
}
}
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if (source == exitButton) {
System.exit(0);
} else {
calculate((Button)source);
}
}
}
eschew obfuscation
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Development Centers
-- Android Development Center
-- Cloud Development Project Center
-- HTML5 Development Center
-- Windows Mobile Development Center
|