I'm doing a simple program that return the percentage of each number of a set. But for some reason I cannot make the number return correctly except for the last one...
I cannot figure why it always print 0% for each number except the last one.
Here is the code :
public class MainWindow extends JFrame implements ActionListener {
private JButton theButton = new JButton("Calculer sur 100");
private JTextField textField = new JTextField("");
private JTextArea text = new JTextArea("");
private JScrollPane scroller = new JScrollPane(text);
public MainWindow() {
setLayout(new BorderLayout());
setTitle("Calculateur de pourcentage");
setSize(400, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
layoutManagement();
setVisible(true);
}
private void layoutManagement() {
text.setEditable(false);
theButton.addActionListener(this);
getContentPane().add(scroller, BorderLayout.CENTER);
getContentPane().add(textField, BorderLayout.NORTH);
getContentPane().add(theButton, BorderLayout.SOUTH);
}
private int checkForNumber()
{
int numl;
try{
numl = Integer.parseInt(textField.getText());
}catch(NumberFormatException e)
{
text.setText("Please try with number...");
System.out.println("Error in number format. Returning 0");
return 0;
}
System.out.println("numl = " + numl);
return numl;
}
private double doMath(int i, int num)
{
System.out.println("printing result = " + (i / num) * 100);
return (i / num) * 100;
}
private void print100(int num) {
for (int i = 1; i < num + 1; i++)
{
text.setText(text.getText() + "\n" + i + " : " + doMath(i, checkForNumber()));
}
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == theButton) {
text.setText("");
print100(checkForNumber());
}
}
Any idea?