I have an assignment where I have to set get user input and then display the input as well as an image associated with the input. I'm stuck with my code and don't know where the problem. I think the main issue I'm having is getting tf1.getText() == st1.getInfo() value.
I have also checked to make sure the images are in the correct folder and labels correctly.
Sorry for having to post so much code. Thanks for any help.
Code:
MyJpanel1
public class MyJPanel1 extends JPanel implements ChangeListener, ActionListener
{
JTextField tf1,tf2;
JSlider js1;
JLabel lab6;
JTextField message;
JButton ok;
myJPanel2 p2;
int count2;
public MyJPanel1(MyJPanel2 informedp2)
{
p2 = informedp2;
setLayout(new GridLayout(7,1));
lab6 = new JLabel("Enter Student Name");
add(lab6,"North");
tf1 = new JTextField(10);
add(tf1);
tf2 = new JTextField(15);
add(tf2);
message = new JTextField("",50);
js1 = new JSlider(JSlider.HORIZONTAL,0,50,20);
js1.setBorder(BorderFactory.createTitledBorder("Use Slider to Enter Age"));
js1.setMajorTickSpacing(1);
js1.setPaintTicks(true);
add(js1);
add(message);
js1.addChangeListener(this);
ok = new JButton("Ok");
ok.addActionListener(this);
add(ok);
}
public void stateChanged(ChangeEvent e)
{
JSlider obj = (JSlider)e.getSource();
int count = obj.getValue();
if(obj == js1)
{
message.setText("Age =" + count);
}
count2 = count;
}
public void actionPerformed(ActionEvent event)
{
Object obj = event.getSource();
String result = p2.st1.getInfo(); // value stored should be "Fred"
if (obj == ok)
{
p2.j2.setText("Student Name = " + tf1.getText()+" " + tf2.getText()+ " "+ "Age = " + count2);
if (result ==tf1.getText()) // tf1.getText() value should be "Fred" which should then display the image.
{
p2.j3.setIcon(p2.imageFred);
}
}
}
}
MyJPanel2
public class myJPanel2 extends JPanel
{
student st1 = new student("Fred"); // "Fred" value should be the st1.getInfo() value
JButton j2 = new JButton("the user clicks on the button in the UPPER panel" );
JButton j3 = new JButton("Pic");
ImageIcon imageFred = new ImageIcon("images/fred.gif");
public myJPanel2()
{
super();
setBackground(Color.pink);
setLayout(new GridLayout(3,1));
add(j2);
add(j3);
}
}
student:
public class student
{
String firstName;
String lastName;
int age;
public student(String a)// String b, int x)
{
super();
firstName = a;
//lastName = b;
//age = x;
}
String getInfo()
{
return firstName; // This value should return "Fred" since st1 = new student("Fred")correct?
}
String whatsUp()
{
double r = Math.random();
int myNumber = (int) (r * 3f); //comment: a random number between 0 and 2
String answer = "I don't know";
if(myNumber == 0) answer = "searching the web";
if(myNumber == 1) answer = "doing Java";
if(myNumber == 2) answer = "Listening to endless lecture";
return answer;
}
}