日期:2014-05-20  浏览次数:20713 次

java windows界面感官下JFileChooser的显示问题
我在windows界面感官下创建的JFileChooser,显示有点点小问题,最上面的“向上一层”、“创建新的文件夹”等几个按钮显示不出来,不知道是什么原因,求高手解答,首先说明,我的系统是Windows 7旗舰版的,如果把设置感官界面的语句取消,界面显示完全是正常的,下面是我的代码:
Java code

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.UIManager;
public class JFileChooserTest  extends JFrame{
    public JFileChooserTest()
    {
        super();
     // 使用Windows的界面风格
        try
        {
            // 是windows
            if (System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") != -1)
            {
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            }
        } catch (Exception e)
        {
            System.out.println("设置界面感官异常!");
            e.printStackTrace();
        }
        setTitle("JFileChooserTest");
        setBounds(100,100,350,150);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        final JButton button = new JButton();
        final JLabel label = new JLabel();
        button.addActionListener(new ActionListener(){  //监听事件
            public void actionPerformed(ActionEvent e){
                JFileChooser fileChooser = new JFileChooser();  //对话框
                int i = fileChooser.showOpenDialog(getContentPane());  //opendialog
                if(i==JFileChooser.APPROVE_OPTION)  //判断是否为打开的按钮
                {
                    File selectedFile = fileChooser.getSelectedFile();  //取得选中的文件
                    label.setText(selectedFile.getPath());   //取得路径
                }
            }
        });
        getContentPane().add(button,BorderLayout.NORTH);  //布局处理
        getContentPane().add(label,BorderLayout.CENTER);
        button.setText("上传");
    }
    public static void main(String[] args) {
        JFileChooserTest jFileChooserTest = new JFileChooserTest();
        jFileChooserTest.setVisible(true);
    }
}



------解决方案--------------------
我运行起来没有问题,我是win7旗舰版
把if (System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") != -1)
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
去掉就是java界面的,加上就是win7本身的
你看看是不是你系统什么组件没有装的问题
------解决方案--------------------
我也遇到了同样的问题,几个按钮显示不出来。估计是JRE和Windows7配合的问题。