
import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
public class Calculator extends JFrame{
// Declare GUI components
private JTextField jtfFirst;
private JTextField jtfSecond;
private JTextField jtfResult;
private JLabel jlblFirst;
private JLabel jlblSecond;
private JLabel jlblResult;
private JPanel entryPanel;
private JPanel buttonPanel;
private JButton jbtAdd;
private JButton jbtSubtract;
private JButton jbtMultiply;
private JButton jbtDivide;
// main method to instantiate and customize frame
public static void main(String[] args)
{
Calculator frame = new Calculator();
frame.setTitle( "Four Function Calculator");
frame.setSize( 500, 120 );
frame.setLocation(400, 400);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setVisible(true);
}
// GUI constructor
public Calculator()
{
// Instantiate GUI components for top of frame
jlblFirst = new JLabel( "First Number: ", JLabel.CENTER );
jlblSecond = new JLabel( "Second Number: ", JLabel.CENTER );
jlblResult = new JLabel( "Result: ", JLabel.CENTER );
jtfFirst = new JTextField(5);
jtfSecond = new JTextField(5);
jtfResult = new JTextField(10);
entryPanel = new JPanel();
// make result text field uneditable
jtfResult.setEditable( false );
// Set layout manager of panel
entryPanel.setLayout( new FlowLayout());
// add GUI components to panel
entryPanel.add( jlblFirst );
entryPanel.add( jtfFirst );
entryPanel.add( jlblSecond );
entryPanel.add( jtfSecond );
entryPanel.add( jlblResult );
entryPanel.add( jtfResult );
// add entryPanel to frame
add(entryPanel);
setLayout(new FlowLayout());
// Instantiate GUI components for bottom of frame
jbtAdd = new JButton( "Add" );
jbtAdd.setVerticalTextPosition(AbstractButton.CENTER);
jbtAdd.setHorizontalTextPosition(AbstractButton.LEADING);
jbtAdd.setMnemonic(KeyEvent.VK_A);
jbtSubtract = new JButton( "Subtract" );
jbtSubtract.setVerticalTextPosition(AbstractButton.CENTER);
jbtSubtract.setHorizontalTextPosition(AbstractButton.LEADING);
jbtSubtract.setMnemonic(KeyEvent.VK_S);
jbtMultiply = new JButton( "Multiply" );
jbtMultiply.setVerticalTextPosition(AbstractButton.CENTER);
jbtMultiply.setHorizontalTextPosition(AbstractButton.LEADING);
jbtMultiply.setMnemonic(KeyEvent.VK_M);
jbtDivide = new JButton( "Divide" );
jbtDivide.setVerticalTextPosition(AbstractButton.CENTER);
jbtDivide.setHorizontalTextPosition(AbstractButton.LEADING);
jbtDivide.setMnemonic(KeyEvent.VK_D);
buttonPanel = new JPanel();
// add buttons to panel
buttonPanel.add( jbtAdd );
buttonPanel.add( jbtSubtract );
buttonPanel.add( jbtMultiply );
buttonPanel.add( jbtDivide );
// add buttonPanel to frame
add( buttonPanel, BorderLayout.SOUTH);
//Event Handler
jbtAdd.addMouseListener(new List_ButtonADD());
jbtSubtract.addMouseListener(new List_ButtonSUB());
jbtDivide.addMouseListener(new List_ButtonDIV());
jbtMultiply.addMouseListener(new List_ButtonMUL());
}
private class List_ButtonADD implements MouseListener
{
public void mouseClicked(MouseEvent event)
{
double x=Double.parseDouble(jtfFirst.getText());
double y=Double.parseDouble(jtfSecond.getText());
jtfResult.setText(String.valueOf(x+y));
}
public void mousePressed(MouseEvent event)
{
}
public void mouseReleased(MouseEvent event)
{
}
public void mouseEntered(MouseEvent event)
{
}
public void mouseExited(MouseEvent event)
{
}
}
private class List_ButtonDIV implements MouseListener
{
int cnt=0;
public void mouseClicked(MouseEvent event)
{
double x=Double.parseDouble(jtfFirst.getText());
double y=Double.parseDouble(jtfSecond.getText());
jtfResult.setText(String.valueOf(x/y));;
}
public void mousePressed(MouseEvent event)
{
}
public void mouseReleased(MouseEvent event)
{
}
public void mouseEntered(MouseEvent event)
{
}
public void mouseExited(MouseEvent event)
{
}
}
private class List_ButtonSUB implements MouseListener
{
int cnt=0;
public void mouseClicked(MouseEvent event)
{
double x=Double.parseDouble(jtfFirst.getText());
double y=Double.parseDouble(jtfSecond.getText());
jtfResult.setText(String.valueOf(x-y));
}
public void mousePressed(MouseEvent event)
{
}
public void mouseReleased(MouseEvent event)
{
}
public void mouseEntered(MouseEvent event)
{
}
public void mouseExited(MouseEvent event)
{
}
}
private class List_ButtonMUL implements MouseListener
{
int cnt=0;
public void mouseClicked(MouseEvent event)
{
double x=Double.parseDouble(jtfFirst.getText());
double y=Double.parseDouble(jtfSecond.getText());
jtfResult.setText(String.valueOf(x*y));
}
public void mousePressed(MouseEvent event)
{
}
public void mouseReleased(MouseEvent event)
{
}
public void mouseEntered(MouseEvent event)
{
}
public void mouseExited(MouseEvent event)
{
}
}
}
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.