java文件选择对话框,文件名不可编辑_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java文件选择对话框,文件名不可编辑

java文件选择对话框,文件名不可编辑

 2012/6/29 16:37:12  IThead  程序员俱乐部  我要评论(0)
  • 摘要:思想:获取文件选择对话框中“文件名”显示栏的组件,设置组件不可编辑。importjava.awt.Component;importjava.awt.Color;importjavax.swing.*;/***java文件选择对话框*文件名不可编辑*/publicclassJFileChooserUI{privatestaticJLabelfindLabel(JComponentcomp,Strings){JLabellabel=null;if(compinstanceofJLabel){if(
  • 标签:文件 Java 对话 文件名
思想:获取文件选择对话框中“文件名”显示栏的组件,设置组件不可编辑。

import java.awt.Component;
import java.awt.Color;

import javax.swing.*;

/**
 * java文件选择对话框
 * 文件名不可编辑
 */

public class JFileChooserUI {
    private static JLabel findLabel(JComponent comp, String s) {
        JLabel label = null;
        if (comp instanceof JLabel) {
            if (((JLabel) comp).getText().equals(s)) {
                label = (JLabel) comp;
            }
        } else if (comp instanceof JComponent) {
            Component[] comps = comp.getComponents();
            for (int i = 0; i < comps.length; i++) {
                if (comps[i] instanceof JComponent) {
                    label = findLabel((JComponent) comps[i], s);
                    if (label != null) {
                        break;
                    }
                }
            }
        }
        return label;
    }

    public static Component getLabelForInChooser(JFileChooser chooser, String key) {
        java.util.Locale l = chooser.getLocale();
        String s = UIManager.getString(key, l);

        javax.swing.plaf.FileChooserUI ui = chooser.getUI();
        int count = ui.getAccessibleChildrenCount(chooser);
        for (int i = 0; i < count; i++) {
            javax.accessibility.Accessible a =
                    ui.getAccessibleChild(chooser, i);
            JLabel label = findLabel((JComponent) a, s);
            if (label != null) {
                return label.getLabelFor();
            }
        }
        return null;
    }

    public static void main(String[] args) {
        JFileChooser chooser = new JFileChooser("");
        Component comp = getLabelForInChooser(chooser, "FileChooser.fileNameLabelText");
        if (comp instanceof JTextField) {
            JTextField field = ((JTextField) comp);
            field.setEditable(false);

            //   随意
            //   field.setBackground(Color.WHITE);
        }
        chooser.showOpenDialog(null);
    }
}
发表评论
用户名: 匿名