Java 如何通过字符串获取swing按钮名称?

Java 如何通过字符串获取swing按钮名称?,java,japplet,Java,Japplet,我试图通过使用字符串定义swing按钮标签,然后将字符串转换为按钮名称,然后使用名称设置标签 不知何故,它不起作用,我尝试使用getClass();和Class.forName() 这是我的自定义类,我试图通过将按钮名称作为字符串输入来更改按钮标签 public void zet(String scl){ Class c = scl.getClass(); //Class c = Class.forName(scl); if (beurt) { c.setLabel("X"); beur

我试图通过使用字符串定义swing按钮标签,然后将字符串转换为按钮名称,然后使用名称设置标签

不知何故,它不起作用,我尝试使用getClass();和Class.forName()

这是我的自定义类,我试图通过将按钮名称作为字符串输入来更改按钮标签

public void zet(String scl){
Class c = scl.getClass();
//Class c = Class.forName(scl);
if (beurt) {
  c.setLabel("X");
  beurt = false;
} // end of if
else{
  c.setLabel("O");
  beurt = true;
}}
谁能帮我一下吗?非常感谢。你不能这样做

Java反射和“名称类”不允许这样做。周围没有任何组件可以跟踪您之前“通过new()”创建的jbutton,并允许您仅通过其“名称”找到一个jbutton

如果您需要此类功能,您必须实现自己的“注册表”,例如:

Map<String, JComponent> componentsByName = new HashMap<>();
... then you add components like
componentsByName.put("button-1", someJButton); ...
... and later on, 
( componentsByName.get("button-1") ).setLabel() ...
Map componentsByName=newhashmap();
... 然后添加如下组件
componentsByName.put(“button-1”,someJButton)。。。
... 后来呢,,
(componentsByName.get(“按钮-1”)).setLabel()。。。

换句话说:尤其是当你是新手的时候,不要以为你只需要听到一个“概念”的名字就可以使用它。相反,你应该总是假设事情可能更复杂,你应该花一些时间认真阅读关于你所听到的概念的文档,以了解它是否真的是你所需要的;如果是,如何使用它。

为什么要这样做?你想完成什么?请你再解释一下好吗?我想创建一个类,可以自动更改按钮的一些内容,调用该类时唯一需要定义的是按钮本身的名称,它将保存在字符串中,我想用一种方式来转换字符串,我可以用它来改变注释指定按钮的标签,但你不必教训我,我知道它不长,但我花了一个小时试图找到一种方法,在多次尝试让它工作后,我只是没有让它工作,不要以为我每次都会来这里,因为我不,我只是在我真的很笨的时候才来,我不想粗鲁。但这是我在这里的一个非常好的经验:人们不应该认为只有“名称”(如“forName()”)才能告诉你这件事将为你做什么。