我在寫一個Java應用程序,需要在屏幕分辨率非常高的設備上運行。我需要顯示的唯一UI組件是JFileChooser。如何增加JFileChooser的大小?
由於屏幕分辨率如此之高,FileChooser顯得太小。有一個簡單的命令,我可以使它變得更大嗎?理想情況下,我想保持組件的比例相同,以便圖標的增長與文本一樣多。
此外,重要的是任何更改只能修改我的應用程序。改變圖形大小的全局方法,比如使用較低的分辨率,或者改變系統級的字體大小,對我來說不是一種選擇。
任何想法?
我在寫一個Java應用程序,需要在屏幕分辨率非常高的設備上運行。我需要顯示的唯一UI組件是JFileChooser。如何增加JFileChooser的大小?
由於屏幕分辨率如此之高,FileChooser顯得太小。有一個簡單的命令,我可以使它變得更大嗎?理想情況下,我想保持組件的比例相同,以便圖標的增長與文本一樣多。
此外,重要的是任何更改只能修改我的應用程序。改變圖形大小的全局方法,比如使用較低的分辨率,或者改變系統級的字體大小,對我來說不是一種選擇。
任何想法?
我打算建議將JFileChooser
添加到具有合適佈局的容器中,如@AVD所示。例如,ImageDisplay
將選擇器添加到BorderLayout.WEST
,可以在其中自由垂直增長,同時採用UI委託的首選寬度。在放棄這種方法之前,請驗證您是否無意中擊敗了該設計功能。
如果你真的需要在選擇器的子組件的顯示特性控制,你可能想看看FileBrowser
這些變化。
我知道答案。只需使用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
}
不錯的嘗試:-)不幸的是,沒有辦法增加圖標/字體的大小。 – kleopatra
這類工作得很好,無論是調整的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;
}
}
不錯的問題:-)不幸的是,答案是如此之多以至於無法實現:雖然您可以更改對話框的大小,但不會增加使用的字體。即使您更改字體(可以在UIManager中完成),圖標仍然很小(但可以更改爲UIManager中的自定義圖標) – kleopatra