Я пытаюсь генерировать a JFileChooser
это имеет стиль Windows. Я не мог найти, что метод изменил его, таким образом, я создал базовый класс, который расширяется JFileChooser
это изменяет UI со следующим кодом:
public FileChooser(){
this(null);
}
public FileChooser(String path){
super(path);
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e) { System.err.println("Error: " + e.getMessage()); }
Затем в другом классе я звоню
FileChooser chooser = new FileChooser(fileName);
int val = chooser.showOpenDialog(null);
но диалоговое окно, которое подходит, имеет стиль Java. Какие-либо мысли о том, как изменить это? Существует ли метод класса JFileChooser, который я могу использовать вместо этого расширенного класса?
Спасибо!
Я предлагаю использовать утилиты java.util.concurrent, особенно класс AtomicLong. См. связанный javadoc
-121--2333949-Перегрузка группы метод, который принимает IEqualityComparer как параметр, но есть ли эквивалентно использованию предложения group?
Вы всегда можете сгруппировать по анонимному типу, если вам просто нужно быстрое встроенное решение и вы не беспокоитесь о том, чтобы набрать точный тип для ключей:
var grouped =
from it in items
group it by new {it.Coordinate.Latitude, it.Coordinate.Longitude};
-121--2793608- Если вам не нужно менять Look and Feel, не могли бы вы попробовать поместить UIManager.setLookAndFeel
Это, кажется, работает для меня, хотя я в проигрыше в том, почему это не сработает путь вы настроили это.
Проблема в том, что внешний вид уже был выбран для вас, когда вы вызывали super (путь)
.
Из Учебное пособие по Java для Look and Feel :
Примечание : если вы собираетесь установить L&F, вы должны сделать это как самый первый шаг в ваше приложение. В противном случае вы рискуете инициализировать Java L&F независимо от того, какой L&F вы запросили. Это может произойти непреднамеренно, когда статическое поле ссылается на класс Swing, что вызывает загрузку L&F. Если L&F еще не задано, загружается значение по умолчанию L&F для JRE. Для Sun JRE по умолчанию используется Java L&F, для Apple JRE - Apple L&F и так далее .
Чтобы исправить это, сделайте следующее ( объяснение расположено здесь ) - замените блок try / catch на этот код:
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
SwingUtilities.updateComponentTreeUI(this);
this.pack();
Сначала попробуйте запустить код из командной строки и укажите там внешний вид, чтобы увидеть, что его можно применить.
java -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel YourApp
Если он действительно применяет правильный внешний вид, вы можете добавить код внешнего вида в программу перед созданием диалогового окна JFileChooser. Допустим, простая программа могла бы выглядеть так:
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch (Exception e) {
// handle exception
}
JFileChooser chooser = new JFileChooser();
//etc
}