windows 可以按大图标,小图标,详细资料等模式查看,而filechooser中没有相应的方法设置,只能在它出来后,用鼠标来选择,有没有办法在代码里解决?高手们有办法吗?

解决方案 »

  1.   

    为了回答这个问题,也算是费劲了心机。首先查看了源代码,没有发现任何可以的方法,甚至连什么时候点击了该按钮都无法得知。无奈使用了DEBUG大法,仔细观察JFileChooser的控件结构,终于给出如下答案:    /**
         *  测试filechooser,控制对话框中控件。
         *  question from :http://community.csdn.net/Expert/topic/4399/4399574.xml?temp=.4272577
         * @author pdvv 2005-11-23
         * 
         * */
        public static void filechooserTest(){
            Frame f = new Frame();
            f.show();
            
            final JFileChooser fc = new JFileChooser();
            
            /*fc.addPropertyChangeListener(
                    new PropertyChangeListener (){
                        public void propertyChange(PropertyChangeEvent evt){
                            System.out.println("property changed:" + evt.getPropertyName());
                        }
                    }
            );*/
            
            JPanel p1 = (JPanel)fc.getComponent(0);
            JPanel p2 = (JPanel)p1.getComponent(0);
            
            JToggleButton jtButtonList = (JToggleButton)p2.getComponent(6);
            JToggleButton jtButtonDetail = (JToggleButton)p2.getComponent(7);        jtButtonList.addActionListener(
                    new ActionListener(){
                        public void actionPerformed(ActionEvent e){
                            System.out.println("you clicked list!");
                        }
                    }
            );        jtButtonDetail.addActionListener(
                    new ActionListener(){
                        public void actionPerformed(ActionEvent e){
                            System.out.println("you clicked detail!");
                        }
                    }
            );
            
            jtButtonList.doClick(); //select list view
            jtButtonDetail.doClick(); //select detail view
            
            fc.showOpenDialog(f);
            
            f.dispose();
        }