我正在编写一个需要在屏幕分辨率非常高的设备上运行的Java应用程序。我需要显示的唯一UI组件是JFileChooser。
由于屏幕分辨率如此之高,FileChooser显得太小。是否有一个简单的命令我可以使它变大?理想情况下,我希望保持组件的比例相同,以便图标的增长与文本一样多。
此外,任何更改都只能修改我的应用程序。改变图形大小的全局方法,例如使用较低分辨率或更改系统范围的字体大小,对我来说不是一种选择。
有什么想法吗?
答案 0 :(得分:2)
我知道答案。只需使用chooser.setPreferredSize(new Dimension(int width,int height));
方法,其中选择器是您的JFileChooser。
示例:
public class MyFrame extends JFrame(){
JFileChooser chooser = new JFileChooser();
chooser.setPreferredSize(new Dimension(800,600));
//Here show your dialog and do the rest
}
答案 1 :(得分:2)
这个类工作正常,可以调整JFileChooser窗口和字体的大小。
public class JFileChooserArqs {
private Font font = new Font("monospaced",Font.BOLD,16);
private String fileName;
public JFileChooserArqs(String title)
{
fileName = null;
JFileChooser fc = new JFileChooser(".");
fc.setPreferredSize(new Dimension(800,600));
fc.setDialogTitle(title);
setFileChooserFont(fc.getComponents());
int returnVal = fc.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
fileName = fc.getSelectedFile().getAbsolutePath();
}
}
private void setFileChooserFont(Component[] comp)
{
for(int x = 0; x < comp.length; x++)
{
if(comp[x] instanceof Container) setFileChooserFont(((Container)comp[x]).getComponents());
try{comp[x].setFont(font);}
catch(Exception e){}//do nothing
}
}
public String obtemNomeArquivo() {
return fileName;
}
}
答案 2 :(得分:1)
答案 3 :(得分:1)
我打算建议将JFileChooser
添加到具有合适布局的容器中,如@AVD建议的那样。例如,ImageDisplay
将选择器添加到BorderLayout.WEST
,在此处可以自由地垂直增长,同时采用UI委托的首选宽度。在放弃这种方法之前,请确认您没有无意中击败该设计功能。
如果确实需要控制选择器子组件的显示特性,您可能需要查看FileBrowser
的这些变体。