Поэтому я пытаюсь создать кнопку, в которой открывается FileChoser для импорта изображения.
Моя проблема:
1 - я хочу, чтобы fileChoser отображал только изображения-файлы (.jpg ...).
2 - Когда откроется FileOpener, остальные окна должны быть отключены, пока FileOpener не будет удален.В моем случае они отключены, но когда я нажимаю на них, моя программа по какой-то причине падает.
3 - Если есть лучший FileOpener, он будет приветствоваться, но это не мое, я нашел его в сети.
Вот мой исходный код:
public class FileOpener {
private JFileChooser file_chooser = new JFileChooser();
StringBuilder path = new StringBuilder();
public File choosed() {
File file = null;
if(file_chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
file = file_chooser.getSelectedFile();
Scanner input = null;
try {
input = new Scanner(file);
} catch (FileNotFoundException e) {
System.out.println("Fail");
e.printStackTrace();;
}
while(input.hasNext()) {
path.append(input.nextLine());
}
input.close();
}
return file;
}
public String getPath() {
return path.toString();
}
}
А вот мой звонок (Там, где есть проблема - окно включения-отключения):
Button button_2 = new Button(composite_1, SWT.FLAT);
button_2.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
shell.setEnabled(false);
FileOpener v = new FileOpener();
File file = v.choosed();
if(file != null) {
Image image = new Image(shell.getDisplay(), file.getPath());
Image image2 = main.ScaleImage(image, Image_input);
Image_input.setImage(image2);
}
shell.setEnabled(true);
}
});
Обратите внимание, что этот код работает, но я пытаюсь просто исправить ошибки, функция "ScaleImage" перемасштабирует выбранное изображение под мою метку.