Как увеличить размер JFileChooser? - PullRequest
3 голосов
/ 25 января 2012

Я пишу Java-приложение, которое должно работать на устройстве с очень высоким разрешением экрана.Единственный компонент пользовательского интерфейса, который мне нужно отобразить, - это JFileChooser.

Поскольку разрешение экрана такое высокое, FileChooser кажется слишком маленьким.Есть ли простая команда, которую я могу использовать, чтобы сделать ее больше?В идеале я хотел бы сохранить пропорции компонентов одинаковыми, чтобы значки увеличивались так же, как и текст.

Кроме того, важно, чтобы любые изменения изменяли только мое приложение.Глобальный подход к изменению размера графики, такой как использование более низкого разрешения или изменение размера шрифта в масштабе всей системы, для меня не вариант.

Есть идеи?

Ответы [ 4 ]

2 голосов
/ 12 сентября 2013

Этот класс работает нормально, изменяя размеры окна 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 голосов
/ 22 сентября 2012

Я знаю ответ. Просто используйте метод chooser.setPreferredSize(new Dimension(int width,int height));, где chooser - ваш 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 голос
/ 25 января 2012

Я собирался предложить добавить JFileChooser к контейнеру с подходящей компоновкой, как предлагает @AVD. Например, ImageDisplay добавляет селектор к BorderLayout.WEST, где он может свободно расти по вертикали, принимая предпочтительную ширину делегата пользовательского интерфейса. Прежде чем отказаться от этого подхода, убедитесь, что вы случайно не победили эту конструктивную особенность.

Если вам действительно нужен контроль над характеристиками отображения подкомпонентов, вы можете посмотреть на эти варианты FileBrowser.

1 голос
/ 25 января 2012

Вам нужно выбрать подходящие макеты для разработки пользовательского интерфейса.Посмотрите на CodeRanch thread.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...