大家好,我现在在做Swing的项目,Swing中的事件机制非常复杂,Swing组件又非常丰富,现在我想把每个Swing组件对象都配置在XML文件中,例如:
<?xml version="1.0" encoding="UTF-8"?>
<components>
    <component id="leftPanel" class="javax.swing.JPanel"> <!-- Swing Panel -->
    </component>
    <component id="customPanel" class="com.test.CustomPanel"> <!-- 自定义Panel-->
    </component>
......
</components>我在Swing主应用启动的时候,自定义了一个工具类来读取并加载了上面的XML配置文件,现在的问题是任意某个类中怎么样根据id来获取当前Swing上下文中的某个Swing组件对象?即怎样根据id来获取某个Swing组件对象的引用?
例如:我点击了一个按钮之后,需要更改leftPanel,那么在事件监听类中怎样获取这个leftPanel ?(不能重新创建leftPanel,我需要获取的是原来leftPanel的引用,以便更改leftPanel中的内容)实验了一天了,还是没有好的解决方法!请知道的朋友指点一二,谢谢大家了!

解决方案 »

  1.   

    按照spring的做法 启动的时候就把所有的类实例并加载到内存里(懒加载不算)。 然后要用的时候直接取。你也可以在解析xml的时候去实例化所有的控件 放到一个地方缓存 然后要用的时候直接取。
      

  2.   

    抱歉来晚了,再问一句:控件放到一个地方缓存,Java中怎么样实现这个缓存机制呢?是放到JVM中还是内存中?实现机制采用Java缓存框架实现还是?
      

  3.   


    其实放在Map里面就可以啦!
      

  4.   

    spring的做法是放在Map里 如同4楼所说。