Mam taki kod, i nie bardzo wiem jak tego Twoje użyć, by działał tak jak chce.
package test;
import javax.swing.*;
import java.awt.event.*;
public class Main extends JFrame implements ActionListener {
public Main(){
super("Aplikacja okienkowa");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenu menu1 = new JMenu("Plik");
JMenuItem menu1item1 = new JMenuItem("Wybierz plik");
JMenuItem menu1item2 = new JMenuItem("Zamknij");
menu1item1.setActionCommand("chooseFile");
menu1item2.setActionCommand("close");
menu1item1.addActionListener(this);
menu1item2.addActionListener(this);
menu1.add(menu1item1);
menu1.add(menu1item2);
JMenuBar menuBar = new JMenuBar();
menuBar.add(menu1);
setJMenuBar(menuBar);
setLayout(null);
JButton button1 = new JButton("Kliknij");
button1.setSize(80, 30);
button1.setLocation(115, 55);
button1.setActionCommand("chooseFile");
button1.addActionListener(this);
add(button1);
setSize(320, 200);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
String cmd = e.getActionCommand();
if("chooseFile".equals(cmd)){
JFileChooser fc = new JFileChooser();
if(fc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION){
String nazwaPliku = fc.getSelectedFile().getName();
JOptionPane.showMessageDialog(this, "Wybrano plik: " + nazwaPliku,
"Informacja!", JOptionPane.INFORMATION_MESSAGE);
}
}
else if("close".equals(cmd)){
dispose();
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Main();
}
});
}
}