我想提供一个字符串,然后用该字符串接收组件的引用
譬如说我提供字符串"mainPanel"给方法,然后返回一个JPanel对象,对象名称是mainPanel。
也即达到JPanel mainPanel = new JPanel()的效果

解决方案 »

  1.   

    我说的还不够清楚吗?Java中所有的对象都是引用。你要是不习惯,就改为对象好了
      

  2.   

    我是说给个字符串是组件名,而非组件类名。
    真不知道你是怀着啥心情回答的?
    工厂再强大,也不过是Class.forName();能用吗?不能用行不行!
      

  3.   

    不知道你为什么要这样弄
    非要这样弄的话,用HashMap<String,Object>把变量名字符串和真的变量引用存起来
    使用时用字符串去get
      

  4.   

    提供字符串"mainPanel"给方法如果是在方法内部 JPanel mainPanel = new JPanel() 生成对象,
    那这个引用就不是全局引用,而是方法内部的局部引用,
    叫什么都一样没有什么实际意义如果这个引用不是方法内部的局部引用,那它只能是一个类的全局引用
    那它的引用名肯定要是编译期就确定,直白点说,就是要写在代码里
    怎么能接受一个字符串,然后引用名“变成”和这个字符串一样呢?如果你说的 JPanel 的 name 的话倒是好办
    所有 Component 都有 name 属性
    setName("mainPanel") 就 ok 了
      

  5.   

    引用和对象是不同的LZ。
    你先分清吧,对象是存储于堆内存中的,而引用是存储于栈内存。
    Object o = new Object();
    o是引用,new Object()是对象;
    Object getObject(){}
    一个方法返回的引用是匿名的,怎么能完成你想的通过传入的“mainPanel”来决定引用的名称?
    难不成你想实现如下的代码?
    getMainPanel();
    mainPanel.setXX(); //不声明直接调用?
    mainPanel.xx();  还有,别人回答你的问题是在帮助你,就算回答的不符合你的要求,也请你保持一种尊敬的态度。
    回答你不是别人的义务!