0

I have 2 classes, one of which also has a nested class:

1. Home.java (extends JApplet)

2. Away.java (extends JPanel) has nested class, private class ButtonListener implements ActionListener

Now in Home.java I have a Vector ( called bankaccount) which i pass to the Constructor of Away.java ( I declared the vector again there as an instance by Private Vector bankaccount;

My problem is that in ButtonListener I am trying to access the Vector so that i can modify it when a button has been clicked, and i thought i could just use the commands of bankaccount.add() and bankaccount.get() directly, however it seems like ButtonListener cannot access the Vector, even though i passed it along to the Constructor of the Away class.

Any suggestions on how i get access the Vector from the ButtonListenere class?

Here is a simplified version of what i am trying to do:

public class Home extends JApplet
{
private Away away;
private Vector bankaccount;
 
public void init()
    {
     bankaccount = new Vector();
     away = new Away(bankaccount);
    }
 
 }
 
 
public class Away extends JPanel
{
private Vector bankaccount;
JTextArea text1= new JTextArea(50,50);
 
public Away(Vector bankaccount)
{
   //declare buttons,textarea,setLayout,etc
 
button1.addActionListener (new ButtonListener()); 
//i can set  text1.setText(( String)bankaccount.get(0));
// here to access bankaccount, and it shows up fine, but i want
// do it in from the class below 
}
 
private class ButtonListener implements ActionListener
	{
		public void actionPerformed(ActionEvent event)
		{	
                     //trying to access bankaccount here by doing:
                    // but it is not doing anything
                    text1.setText(( String)bankaccount.get(0));
}
}
3
Contributors
7
Replies
8
Views
8 Years
Discussion Span
Last Post by spec80
0

what sort of errors do you get, or nothing happens at all?

i have a feeling that your ButtonListener is not using the objects created in Away (the ones you want it to, anyway).

0

Yea im not getting any error, its just that bankaccount.get(0) isn't appearing in the TextArea

0

ok, so if you did something like text1.setText("random text"), does this produce anything into the TextArea?

my guess is not, and so, as I said you have different instances of your objects.

0

Yes if i put in some text it does produce the text in TextArea

0

ah, damn, guess i am wrong (you put that code within your ButtonListener right?).

well from the behaviour you have explained, (String)bankaccount.get(0) must be evaluating to an empty String.

0

In the constructor of Away you need to copy the bankaccount that's passed in to the local private variable bankaccount:

this.bankaccount = bankaccount;

ps Java naming convention says it should be called bankAccount

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.