JFileChooser在选择文件夹名称很长的时候 第二次显示出来的时候会把旁边的的几个按钮给挤到看不见的位置 哎也就是那个显示文件名的组合框在文件名和长的时候也变长了 就把旁边的什么向上啊什么的按钮给搞得看不见了 请问高手有木有办法解决 急~ 分不够我可以加一贴的
帮UP的也有分~ 谢谢
楼主,我没有观察到你说的现象啊,不过还是写了一个比较笨的方法,你试试吧。
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
public class MyFileChooser
extends JFileChooser
{
public static void main(String[] args)
{
final JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
ArrayList comboBoxList = new ArrayList();
findComboBox(chooser, comboBoxList);
for (int i = 0; i < comboBoxList.size(); i++) {
JComboBox comboBox = (JComboBox) comboBoxList.get(i);
if (comboBox.getItemAt(0) instanceof File) {
Dimension mind = comboBox.getMinimumSize();
mind.width = 0;
comboBox.setMinimumSize(mind);
}
}
final JButton btn = new JButton("FileChooser");
btn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
chooser.showOpenDialog(btn);
}
});
JFrame f = new JFrame("FileChooserTest");
f.getContentPane().add(btn, BorderLayout.CENTER);
f.pack();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
private static void findComboBox(Container c, List comboBoxList)
{
int n = c.getComponentCount();
for (int i = 0; i < n; i++) {
Component comp = c.getComponent(i);
if (comp instanceof JComboBox) {
comboBoxList.add(comp);
}
else if (comp instanceof Container) {
findComboBox((Container) comp, comboBoxList);
}
}
}
}