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
Recommended Answers
Jump to PostBecause your code doesn't include anything to process key events? (It only has listeners for mouse click events.)
Jump to Postit's exactly the same as what you did with those MouseListeners
All 6 Replies
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.