Я думаю о двух возможных причинах чего-то подобного:
- Вы пытаетесь смешать AWT и Swing GUI в одной программе или
- Вы пытаетесь смешать консольную программу (то есть, используя System.out.println (...) и получать ввод через объект Scanner) с графическим интерфейсом Swing.
Если вы делаете одну из этих двух вещей, то вам следует упростить и сделать ее только программой типа Swing GUI. Если эта информация не помогает, вы можете сообщить нам больше информации о своей проблеме.
Редактировать 1
Я только что заметил детали вашего кода. Новая часть JPanel () ниже является проблемой:
int retValue = fc.showOpenDialog(new JPanel());
Чтобы JFileChooser действовал как диалоговое окно к окну вашего верхнего уровня (которое в данный момент не выполняется и является вашей главной проблемой), вместо этого вы должны передать компонент, находящийся в родительском верхнем уровне. окно, такое как JPanel или JButton, которое содержится внутри вашего JFrame или JApplet.
Редактировать 2
Хорошо, вы пытаетесь смешать консольную программу на Java с программой Swing GUI, которая похожа на еду мороженого с солеными огурцами - они просто не подходят друг другу. Нет окна верхнего уровня, которое можно было бы предложить методу showOpenDialog в JFileChooser, чтобы оно действовало как настоящий диалог.
Лучшее решение - не делать этого, а вместо этого переписать приложение, чтобы оно представляло собой полноценный Swing GUI.