Sunday, August 2, 2009

How would you position a button in an applet using Java?

Basically, Im trying to make something similar to a calculator with a screen and keypad below it.

How would you position a button in an applet using Java?
The code for positioning a button in ur page is like...


keysArray = new Button[17];


(where 17 is the specified-width, okay?)


Better I'm giving u the whole code for calculator (using Applet), so that u can get the whole points of view...





import java.awt.*;


import java.awt.event.*;


import java.applet.*;





public class CalculatorApplet extends Applet implements ActionListener


{


private Button keysArray[];


private Panel keyPad;


private TextField lcdField;


private double result;


private boolean first;


private boolean foundKey;


static boolean clearText;


private int prevOperator;





public void init()


{


lcdField = new TextField(20);


keyPad = new Panel ();


keysArray = new Button[17];


result = 0.0;


prevOperator = 0;


first = true;


clearText = true;





//Set frame layout manager setLayout(new BorderLayout());





lcdField.setEditable(false);





//Create buttons


for (int i = 0; i %26lt;=9; i++)


keysArray[i] = new Button(String.valueOf(i));


keysArray[10] = new Button("/");


keysArray[11] = new Button("*");


keysArray[12] = new Button("-");


keysArray[13] = new Button("+");


keysArray[14] = new Button("=");


keysArray[15] = new Button(".");


keysArray[16] = new Button("CLR");





//Set panel layout manager


keyPad.setLayout(new GridLayout (4,4));





//Add button to keyPad panel


for (int i = 7; i %26lt;=10; i++) //adds Button 7,8,9, and divide to Panel


keyPad.add(keysArray[i]);





for (int i = 4; i %26lt;6; i++) //adds buttons 4,5,6 to Panel


keyPad.add(keysArray[i]);





keyPad.add(keysArray[11]); //adds multiply button to Panel





for (int i = 1; i %26lt;= 3;i++) //adds buttons 1,2 and 3 to Panel


keyPad.add(keysArray[i]);





keyPad.add(keysArray[12]);//adds minus button to Panel





keyPad.add(keysArray[0]); //adds 0 key to Panel





for (int i = 15; i %26gt;=13; i--)


keyPad.add(keysArray[i]); //adds decimal point, equal, and addition keys Panel





add(lcdField, BorderLayout.NORTH); //adds text field to top of Frame


add(keyPad, BorderLayout.CENTER); //adds Panel to center of Frame


add(keysArray[16], BorderLayout.EAST); //adds Clear key to right side of applet





for(int i = 0; i %26lt; keysArray.length; i++)


keysArray[i].addActionListener(this);


}





public void actionPerformed(ActionEvent e)


{


foundKey = false;





//Search for the key pressed


for (int i = 0; i %26lt; keysArray.length %26amp;%26amp; !foundKey; i++)


if(e.getSource() == keysArray[i]) //key match found


{


foundKey = true;


switch(i)


{


case 0: case 1: case 2: case 3: case 4: //number buttons


case 5: case 6: case 7: case 8: case 9: //0-9


case 15:


if (clearText)


{


lcdField.setText("");


clearText = false;


}


lcdField.setText(lcdField.getText() +


keysArray[i].getLabel());


break;





case 10:// divide button


case 11:// multiply button


case 12:// minus button


case 13:// plus button


case 14:// equal button


clearText = true;


if (first) // First operand


{


if(lcdField.getText().length()==0)


result = 0.0;


else


result = Double.valueOf(lcdField.getText()).doubl...





first = false;


prevOperator = i; //save previous operator


}


else //second operand already enter, so calculator total


{


switch(prevOperator)


{


case 10: //divide Button


result /= Double.valueOf(lcdField.getText()).


doubleValue();


break;


case 11: //multiply Button


result *= Double.valueOf(lcdField.getText()).


doubleValue();


break;


case 12: //minus button


result -= Double.valueOf(lcdField.getText()).


doubleValue();


break;


case 13: //plus button


result += Double.valueOf(lcdField.getText()).


doubleValue();


break;


}


lcdField.setText(Double.toString(result)...


if (i==14)//equal button


first = true;


else


prevOperator = i; //save previous opetator


}


break;





case 16://Clear button


clearText = true;


first = true;


lcdField.setText("");


result = 0.0;


prevOperator = 0;


break;


}


}


}


}


No comments:

Post a Comment