aspose file tools*
The moose likes Swing / AWT / SWT and the fly likes IF Condition not working!?!? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "IF Condition not working!?!?" Watch "IF Condition not working!?!?" New topic
Author

IF Condition not working!?!?

David Pert
Greenhorn

Joined: Nov 01, 2003
Posts: 1
Hi folks,
In the pain of desparation I'm pleading for the help of anyone with an opinion. This small applet should collect an integer from a textfield and siaply it in a table. This part works, but the IF statement I use (in public void checkAndRecordData) doesn't seem to restrict the integers that can be entered. Can anyone help? Please?
Dave.

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class GradeChart extends Applet
implements ActionListener {

private TextField
gradeAField = new TextField(5); // For entry of number of students with grade A
private TextField
gradeBField = new TextField(5);
private TextField
gradeCField = new TextField(5);
private TextField
gradeDField = new TextField(5);
private TextField
gradeEField = new TextField(5);

private int gradeAs, gradeBs, gradeCs, gradeDs, gradeEs; // To record validated entered data
private boolean displayTable=false;
private boolean inputGood=false;

private Button
displayChartButton = new Button("Display bar chart"); // To request display of chart with current data
private Button
clearFieldsButton = new Button("Clear data fields");

private final Color // Various fixed colours
windowBackgroundColor = Color.cyan;

private final Font // Various fixed fonts
labelFont = new Font("Serif", Font.BOLD, 16),
chartFont = new Font("SansSerif", Font.BOLD, 18);

private final int // Various fixed coordinates and dimensions
chartLeftX = 20,
chartTopY = 150;

// Set up the GUI
public void init() {

setBackground(windowBackgroundColor);

Label gradeAFieldLabel = new Label("# of grade As:");
gradeAFieldLabel.setFont(labelFont);
add(gradeAFieldLabel);
add(gradeAField);

Label gradeBFieldLabel = new Label("# of grade Bs:");
gradeBFieldLabel.setFont(labelFont);
add(gradeBFieldLabel);
add(gradeBField);

Label gradeCFieldLabel = new Label("# of grade Cs:");
gradeCFieldLabel.setFont(labelFont);
add(gradeCFieldLabel);
add(gradeCField);

Label gradeDFieldLabel = new Label("# of grade Ds:");
gradeDFieldLabel.setFont(labelFont);
add(gradeDFieldLabel);
add(gradeDField);

Label gradeEFieldLabel = new Label("# of grade Es:");
gradeEFieldLabel.setFont(labelFont);
add(gradeEFieldLabel);
add(gradeEField);

add(displayChartButton);
displayChartButton.setFont(labelFont);
displayChartButton.addActionListener(this);

add(clearFieldsButton);
clearFieldsButton.setFont(labelFont);
clearFieldsButton.addActionListener(this);

} // end of init

// Draw the bar chart
public void paint(Graphics g) {

g.setFont(chartFont);
int tableX=30;
int tableY=190;
int tableWidth=400;
int tableHeight=200;

if (inputGood){

g.setColor(Color.gray);
g.fillRect(chartLeftX-6, chartTopY-6, tableWidth+12, tableHeight+12);
g.setColor(Color.cyan);
g.fillRect(chartLeftX-5, chartTopY-5, tableWidth+10, tableHeight+10);
g.setColor(Color.gray);
g.fillRect(chartLeftX-3, chartTopY-3, tableWidth+6, tableHeight+6);
g.setColor(Color.white);
g.fillRect(chartLeftX, chartTopY, tableWidth, tableHeight);
g.setColor(Color.gray.darker());

for (int counter=0; counter < 4; counter++) {
g.drawLine(tableX-10, tableY, tableX-10+tableWidth, tableY);
tableY+=40;
}
tableY=150;

for (int counterA=0; counterA < gradeAs; counterA++) {
g.drawString("A", tableX-5, chartTopY+30);
tableX+=10;
}
tableX=30;
for (int counterB=0; counterB < gradeBs; counterB++) {
g.drawString("B", tableX-5, chartTopY+70);
tableX+=10;
}
tableX=30;
for (int counterC=0; counterC < gradeCs; counterC++) {
g.drawString("C", tableX-5, chartTopY+110);
tableX+=10;
}
tableX=30;
for (int counterD=0; counterD < gradeDs; counterD++) {
g.drawString("D", tableX-5, chartTopY+150);
tableX+=10;
}
tableX=30;
for (int counterE=0; counterE < gradeEs; counterE++) {
g.drawString("E", tableX-5, chartTopY+190);
tableX+=10;
}
} // End of if (inputGood)

if (!inputGood){
g.setColor(Color.red);
g.drawString("Data is absent or invalid - cannot display chart!", 20, 200);
}

} // end of paint

// actionPerformed
public void actionPerformed(ActionEvent e) {

if (e.getSource() == displayChartButton){
checkAndRecordData();
repaint();
}

if (e.getSource() == clearFieldsButton) {
clearData();
repaint();
}

} // end of actionPerformed

// checkAndRecordData:
private void checkAndRecordData() {

int tempAs=0, tempBs=0, tempCs=0, tempDs=0, tempEs=0;
try {
tempAs = Integer.parseInt(gradeAField.getText());
}
catch (NumberFormatException ex) {
System.out.println("Text field does not contain a number: "+gradeAField.getText());
}

gradeAs = tempAs;

try {
tempBs = Integer.parseInt(gradeBField.getText());
}
catch (NumberFormatException ex) {
System.out.println("Text field does not contain a number: "+gradeBField.getText());
}

gradeBs = tempBs;

try {
tempCs = Integer.parseInt(gradeCField.getText());
}
catch (NumberFormatException ex) {
System.out.println("Text field does not contain a number: "+gradeCField.getText());
}

gradeCs = tempCs;

try {
tempDs = Integer.parseInt(gradeDField.getText());
}
catch (NumberFormatException ex) {
System.out.println("Text field does not contain a number: "+gradeDField.getText());
}

gradeDs = tempDs;

try {
tempEs = Integer.parseInt(gradeEField.getText());
}
catch (NumberFormatException ex) {
System.out.println("Text field does not contain a number: "+gradeEField.getText());
}

gradeEs = tempEs;

if (((gradeAs >= 0) && (gradeAs <= 39)) && ((gradeBs >= 0) && (gradeBs <= 39)) && ((gradeCs >= 0)
&& (gradeCs <= 39)) && ((gradeDs >= 0) && (gradeDs <= 39)) && ((gradeEs >= 0) && (gradeEs <= 39))){
inputGood=true;
}
} // end of checkAndRecordData
private void clearData() {

gradeAField.setText("");
gradeBField.setText("");
gradeCField.setText("");
gradeDField.setText("");
gradeEField.setText("");
}
} // end of GradeChart applet
Paul Stevens
Ranch Hand

Joined: May 17, 2001
Posts: 2823
Why not just set the boolean value on the catch statements? Set it to false if any throw the exception.
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: IF Condition not working!?!?