JFileChooser没有显示,我的ActionListener有什么问题吗?

时间:2018-02-25 19:22:41

标签: java swing actionlistener jfilechooser

我目前正在制作自制编辑器。 "开放"和"另存为"当我启动程序时,JMenu已经设置并出现。问题是他们对我的点击没有反应。我认为我失踪的ActionListeners存在一个问题。

savebtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JFileChooser fileread = new JFileChooser();
                if(fileread.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
                    File file = fileread.getSelectedFile();

                    try {
                        FileReader fr = new FileReader(file);
                        BufferedReader br = new BufferedReader(fr);
                        String text = "";
                        for( int i = 0; i<=br.read();i++) {
                            text.concat(br.readLine());
                        }
                        textbereich.setText(text);

                    } catch (FileNotFoundException e1) {
                        e1.printStackTrace();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                }
            }
});

也许你可以找到解决方案。

提前致谢。

2 个答案:

答案 0 :(得分:1)

  

&#34; Open&#34;和&#34;另存为&#34; JMenu已经设定

JMenu没有响应ActionListener。

你应该创建一个&#34;文件&#34;菜单,然后你添加&#34;打开&#34;和#34;另存为&#34;作为&#34;文件&#34;的JMenuItems菜单。然后ActionListeners将起作用。

阅读How to Use Menus上Swing教程中的部分,了解更多信息和工作示例,以帮助您入门。

此外,当您将文件读入文本组件时,只需使用文本组件的read(...)方法将文本读入组件。不要直接读取文件。

答案 1 :(得分:0)

问题是您正在尝试为JMenu而不是 JMenuItem 设置操作。

您必须从

更改代码
JMenu savebtn = new JMenu("Save");

JMenu fileMenu = new JMenu("File");
JMenuItem savebtn = new JMenuItem("Save");
fileMenu.add(savebtn);

阅读本教程以了解如何使用菜单 https://docs.oracle.com/javase/tutorial/uiswing/components/menu.html