carlkkx 发表于 2013-1-29 07:28:20

借鉴CSS选择器的思路写了一个SwingSelector

有时候一个Swing画面,是由多个嵌套的面板构成的,但是它们里面的各种栏位的关系却是紧密的。这时候希望将各种处理代码写在最顶层的画面中,但是又无法访问子面板中各栏位的引用,必须又要为子面板添加类似get,set之类的访问函数,有些麻烦。

有了SwingSelector可以这样:
new SwingSelector(panel, "JTextField").bindEvent("action", new ActionListener() {            public void actionPerformed(ActionEvent e) {                System.err.println(((JTextField)e.getSource()).getText());            }      })new SwingSelector(panel, "#sitem,#sitem2")                .setAttrValue("model",ComboBoxModel.class,                     new DefaultComboBoxModel(new String[]{"eiruio","erew","testHH","","ewrewrer"}))                .setAttrValue("selectedItem",Object.class, "testHH");
选择器的格式都是借鉴CSS的,比如上面的"JTextField"就表示选择这个panel下的所有JTextField组件,
如果字符串前面加上#,就表示会调用组件的getName()函数来作为选择的依据。

具体请看源文件。
页: [1]
查看完整版本: 借鉴CSS选择器的思路写了一个SwingSelector