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)
{
}
}
}
fazae 0 Newbie Poster
JamesCherrill 4,733 Most Valuable Poster Team Colleague Featured Poster
fazae 0 Newbie Poster
stultuske 1,116 Posting Maven Featured Poster
fazae 0 Newbie Poster
stultuske 1,116 Posting Maven Featured Poster
fazae 0 Newbie Poster
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.