Suppose that I have a lot of variables defined in my code with names such as this
public javax.swing.JPanel BenderPanel1;
public javax.swing.JPanel BenderPanel2;
public javax.swing.JPanel BenderPanel3;
etc...
So their general type is like this: BenderPanel"NUMBER"
.
I want to access some of them and set their visibility with .setVisible(false);
but the number of those panels which I want to access is user-defined on run time.
Is there any possible way through a library to append a number to the end of each variable in order to access it in a for
loop, like this:
for (int i=1; i<=UserInput; i++)
{
BenderPanel"i".setVisible(false); // Watch this "i" right there.
}
WITHOUT the need to add them on ArrayList
first and do it with the obvious way?
You can't create members dynamically in Java (you can access them dynamically via reflection, but there's no need for it here).
Rather than having
public javax.swing.JPanel BenderPanel1;
public javax.swing.JPanel BenderPanel2;
public javax.swing.JPanel BenderPanel3;
have
public javax.swing.JPanel[] BenderPanels;
or
public List<javax.swing.JPanel> BenderPanels;
Then you can loop through them with an enhanced for
loop.
for (javax.swing.JPanel panel : BenderPanels) {
// ...
}
If you really do not want to store your objects in a data structure like e.g. an ArrayList, I would recommend to use the Reflection API.
Especially interesting for you should be the fields.
Btw: According to the Java Naming Conventions, variable names shouldn't start with capital letters.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With