Я начинаю с GUI и слушателей. Я хочу выбрать и установить файл с ПК в «Файл zvolenysubor» в классе Hlavna другим классом, реализующим ActionListener. Я могу выбрать файл в методе actionPerformed слушателя и установить его в «Суппорт файлов», но я не смог его сохранить в «Файл zvolenysubor» в моей основной (и все мои идеи, как это сделать, тоже не удалось). Что я должен изменить/добавить там, пожалуйста?Невозможно установить переменную слушателем
Вот мои классы:
public class Hlavna {
public static void main(String[] args) {
File zvolenysubor = null;
JFrame frame = new JFrame("ABCDE");
JButton vybersuboru = new JButton("vyber");
vybersuboru.setBounds(220, 15, 200, 20);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(640, 480);
frame.add(vybersuboru);
frame.setLayout(null);
VyberListener list1 = new VyberListener(zvolenysubor);
vybersuboru.addActionListener(list1);
vybersuboru.setText("vyber subor");
}
}
public class VyberListener implements ActionListener {
private File subor;
public VyberListener(File subor){
this.subor = subor;
}
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser();
System.out.println("lol");
FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & GIF Images", "jpg", "gif");
chooser.setFileFilter(filter);
chooser.showOpenDialog(null);
subor = chooser.getSelectedFile();
System.out.println(subor.getAbsolutePath());
}
}
Да, это то, что я пытаюсь сделать, обновление «zvolenysubor Файл», который находится в главном методе. Есть ли возможность обновить его как-то в actionPerformed? –
Конечно, вы терпите неудачу, потому что вы передаете нулевой указатель на конструктор VyberListener. Вы не передаете ссылку на какой-либо объект! –
Ах да, это правда. Так как сдать ссылку на этот zvolenysubor в конструктор, пожалуйста? –