Need try catch block for number format No doubles or letters
Need try catch block for number format. No doubles or letters, input must be an integer.
Code********
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.JTextField;
public class Recursion extends JFrame{
//Set application width and height
private final int APP_WIDTH=300;
private final int APP_HEIGHT=300;
private JLabel label=new JLabel(\"Enter number of dogs :\");
private JTextField txtField=new JTextField(10);
private JLabel earsLabel=new JLabel(\"Number of ears :\");
private JButton btnCalculate=new JButton(\"Calculate\");
private JTextField outtxtField=new JTextField(10);
//main method
public static void main(String[] args) {
//instatiate the class
new Recursion();
}
//constructor to set default settings
public Recursion() {
//set size
setSize(APP_WIDTH, APP_HEIGHT);
//set title
setTitle(\"Recursion\");
//set grid layout
//1 2
//3 4
//5 6
setLayout(new GridLayout(3, 2));
//set text field of outtxtfield as false
outtxtField.setEditable(false);
//add controls to the frame
add(label);add(txtField);
add(earsLabel);add(outtxtField);
add(new JLabel());add(btnCalculate);
//add addactionlistener to the btnCalculate
btnCalculate.addActionListener(new ButtonListener());
pack();
//set visible true for frame
setVisible(true);
}
public class ButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
//get text and convert to integer
int numeras=Integer.parseInt(txtField.getText());
//call method numOfEars method
int totalears=numOfEars(numeras);
//set outtxtField value
outtxtField.setText(String.valueOf(totalears));
}
}
/*
* The method numOfEars that takes n value and returns
* number of ears as output
* */
public int numOfEars(int n)
{
if(n==0)
return 0;
//for even number add 4 ears
else if(n%2==0)
return 4+numOfEars(n-1);
//for odd number add 2 ears
else
return 2+numOfEars(n-1);
}
Solution
Scanner input = new Scanner(System.in); int inputUser = -1; try { inputUser = input.nextInt(); } catch (InputMismatchException a) { System.out.print(\"Please provide only integer value as input\"); } switch(inputUser){ case -1: //Control will come here if you didn\'t have any valid input. break;
