John
John

Reputation: 113

Use string in place of variable name

If you have a Java variable named xyz. Then later on I define a string which has the value of the named variable I want to play with.

String x="xyz";

How do I get Java to recognise that String x as a pointer to variable xyz?

An arbitrary example:

JButton a= new JButton();

Later on ...

String x="a";

I want to now say something like

JButton called string x.setPreferredSize(new Dimension(40,30));

Upvotes: 6

Views: 8133

Answers (3)

Jacob Mattison
Jacob Mattison

Reputation: 51082

In general, if you want to access a variable in this way, you have to use Reflection, which is slower and potentially dangerous.

However, since you have a very specific scenario in mind, I'd take a different approach. Why not put your buttons or other elements into a map, with keys that are strings:

Map<String, JComponent> currentComponents = new HashMap<String, JComponent>();

currentComponents.put("a", new JButton());

String x = "a";

currentComponents.get(x).setPreferredSize(new Dimension(40,30));

Upvotes: 4

Tony Casale
Tony Casale

Reputation: 1537

The short answer is that you can't do something like this. That just isn't the way the Java language works. The long answer is that you might be able to simulate something using the Reflection API.

Upvotes: 4

Donut
Donut

Reputation: 112915

Java variable is named xyz

No, it's named x. Its value is "xyz".

String x="a";

Now you're assigning the value "a" to the string named x. It has no association whatsoever to your JButton, even though its name is a.

Upvotes: 0

Related Questions