Take code below and make it personal (as shown in class). Go through the steps o
ID: 3560664 • Letter: T
Question
Take code below and make it personal (as shown in class). Go through the steps of making an executable jar file and verify that it runs. Post the jar file for the answer
// Interface
interface FactInterface
{
public int getFactorial(int number);
}
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class JFrameFact extends JFrame implements FactInterface
{
private JFrame mainFrame;
private JPanel controlPanel;
private JLabel result,lb1;
private JTextField tf;
public static void main(String[] args)
{
JFrameFact ff = new JFrameFact();
ff.prepareGUI();
ff.mathCalculations();
}
public void prepareGUI()
{
mainFrame = new JFrame("Calculating Factorial Using Java Swings");
mainFrame.setSize(500,300);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setLayout(new BorderLayout());
controlPanel = new JPanel(new GridLayout(2,2));
mainFrame.add(controlPanel);
mainFrame.setVisible(true);
}
// Override the interface Method
@Override
public int getFactorial(int number)
{
int fact = 1;
if(number == 0)
return 1;
else
{
for(int i = number; i >= 1; i--)
{
fact = fact * i;
}
}
return fact;
}
public void mathCalculations()
{
result = new JLabel("",JLabel.CENTER);
lb1 = new JLabel("Enter Number : ",JLabel.CENTER);
tf = new JTextField(5);
JButton fact = new JButton("Calculate Factorial");
fact.addActionListener(new MyListener());
controlPanel.add(lb1);
controlPanel.add(tf);
controlPanel.add(fact);
controlPanel.add(result);
mainFrame.add(controlPanel);
mainFrame.setVisible(true);
}
class MyListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
int number = Integer.parseInt(tf.getText());
if(number < 0)
{
JOptionPane.showMessageDialog(controlPanel, "Number Cannot be Negetive");
}
else
{
int factorial = new JFrameFact().getFactorial(number);
result.setText("Factorial of "+number+" is : "+factorial);
}
}
}
}
Explanation / Answer
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
// Interface
interface FactInterface
{
public int getFactorial(int number);
}
public class JFrameFact extends JFrame implements FactInterface
{
private JFrame mainFrame;
private JPanel controlPanel;
private JLabel result,lb1;
private JTextField tf;
public static void main(String[] args)
{
JFrameFact ff = new JFrameFact();
ff.prepareGUI();
ff.mathCalculations();
}
public void prepareGUI()
{
mainFrame = new JFrame("Calculating Factorial Using Java Swings");
mainFrame.setSize(500,300);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setLayout(new FlowLayout());
controlPanel = new JPanel(new GridLayout(2,2));
mainFrame.add(controlPanel);
mainFrame.setVisible(true);
}
// Override the interface Method
@Override
public int getFactorial(int number)
{
int fact = 1;
if(number == 0)
return 1;
else
{
for(int i = number; i >= 1; i--)
{
fact = fact * i;
}
}
return fact;
}
public void mathCalculations()
{
result = new JLabel("",JLabel.CENTER);
lb1 = new JLabel("Enter Number : ",JLabel.CENTER);
tf = new JTextField(5);
JButton fact = new JButton("Calculate Factorial");
fact.addActionListener(new MyListener());
controlPanel.add(lb1);
controlPanel.add(tf);
controlPanel.add(fact);
controlPanel.add(result);
mainFrame.add(controlPanel);
mainFrame.setVisible(true);
}
class MyListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
int number = Integer.parseInt(tf.getText());
if(number < 0)
{
JOptionPane.showMessageDialog(controlPanel, "Number Cannot be Negetive");
}
else
{
int factorial = new JFrameFact().getFactorial(number);
result.setText("Factorial of "+number+" is : "+factorial);
}
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.