求助高手 关于JAVA SWING的对话框 JFileChooser在选择文件夹名称很长的时候 第二次显示出来的时候会把旁边的的几个按钮给挤到看不见的位置 哎也就是那个显示文件名的组合框在文件名和长的时候也变长了 就把旁边的什么向上啊什么的按钮给搞得看不见了 请问高手有木有办法解决 急~ 分不够我可以加一贴的 帮UP的也有分~ 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可能与你用的laf有关系。先确定有没有用laf,如果没用的用jdk本身带的三个依次试试吧。 什么是laf?我是用JDK自带的文件选择对话框啊 >什么是laf?在程序的入口主函数里加上下面的代码试试,MetalLookAndFeel laf = new MetalLookAndFeel();UIManager.setLookAndFeel(laf); MetalLookAndFeel laf = new MetalLookAndFeel(); try { UIManager.setLookAndFeel(laf); } catch (Exception e){ e.printStackTrace(); }JFileChooser fc = new JFileChooser(); fc.setApproveButtonText(res.getString("Open")); fc.setDialogTitle(res.getString("OpenFile")); fc.setMultiSelectionEnabled(false);我这样处理了一下 好象不行 友情UP UP UP 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); } } }} 哇 谢谢楼上的老大 我星期一回公司试试 实在是太感谢了 这个问题困饶了我N久 请继续关注 分分不够可以加的我还有一帖是关于JAVA SWING在UNXI 下的问题我用的JDK是1.3.1 在WINDOWS环境下发现滚动中间滚动键是没有反应的 但是在UNXI下中间键是有反应的 好象等于触发了鼠标右键 问题我还在处理中。 哇 高手 问题解决了 不过我想问一下这几句是为什么啊?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); } }为什么是comboBox.getItemAt(0) instanceof File??mind.width = 0; comboBox.setMinimumSize(mind);?? 哦 还有这个老大可以帮忙吗?http://community.csdn.net/Expert/topic/4189/4189881.xml?temp=.8932459 一个很纠结的问题。 java如何实现拨号连接??? 运行时出现异常 这样的水平能找个什么样的工作? 从不同数据库中存取应该用什么技术? 你是Java人才吗? java里如何实现c中的gotoxy函数? 关于JB9的一点小问题,有谁知道 关于二维数组操作的问题 static块初始化static变量时产生的异常有没有方法抛出,让使用该static变量的语句能接收到这个异常? 帮忙看看那的错误,谢谢了!!!! 请各位高手给小弟解决一下问题,很急(谢谢)!
先确定有没有用laf,如果没用的用jdk本身带的三个依次试试吧。
我是用JDK自带的文件选择对话框啊
MetalLookAndFeel laf = new MetalLookAndFeel();
UIManager.setLookAndFeel(laf);
try {
UIManager.setLookAndFeel(laf);
}
catch (Exception e){
e.printStackTrace();
}
JFileChooser fc = new JFileChooser();
fc.setApproveButtonText(res.getString("Open"));
fc.setDialogTitle(res.getString("OpenFile"));
fc.setMultiSelectionEnabled(false);我这样处理了一下 好象不行
UP UP 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);
}
}
}
}
请继续关注 分分不够可以加的
我还有一帖是关于JAVA SWING在UNXI 下的问题
我用的JDK是1.3.1 在WINDOWS环境下发现滚动中间滚动键是没有反应的 但是在UNXI下中间键是有反应的 好象等于触发了鼠标右键 问题我还在处理中。
不过我想问一下这几句是为什么啊?
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);
}
}
为什么是comboBox.getItemAt(0) instanceof File??
mind.width = 0;
comboBox.setMinimumSize(mind);
??
http://community.csdn.net/Expert/topic/4189/4189881.xml?temp=.8932459