Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JFrame和WordWrap上的x按钮上添加一个方法_Java_Swing_User Interface_Jframe - Fatal编程技术网

Java 在JFrame和WordWrap上的x按钮上添加一个方法

Java 在JFrame和WordWrap上的x按钮上添加一个方法,java,swing,user-interface,jframe,Java,Swing,User Interface,Jframe,所以我在JavaGUI上做一个记事本,我当时有很多问题,请帮助我。我的第一个问题如标题所述,我想向JFrame上的x按钮添加一个方法。我对下面的代码有一个方法,但我不知道如何在x按钮上输入它 我的另一个问题是wrapJCheckBoxMenuItem。它不起作用,我不知道为什么。我希望它的行为就像在一个普通的记事本(如果你点击它会自动换行,如果你再次点击它会停止) 我怎样才能使这段代码正常工作。在我上面的代码里?我好像跑不动了 public void windowClosing(WindowEv

所以我在JavaGUI上做一个记事本,我当时有很多问题,请帮助我。我的第一个问题如标题所述,我想向JFrame上的x按钮添加一个方法。我对下面的代码有一个方法,但我不知道如何在x按钮上输入它

我的另一个问题是wrap
JCheckBoxMenuItem
。它不起作用,我不知道为什么。我希望它的行为就像在一个普通的记事本(如果你点击它会自动换行,如果你再次点击它会停止)

我怎样才能使这段代码正常工作。在我上面的代码里?我好像跑不动了

public void windowClosing(WindowEvent e){
    if(textArea.getText().isEmpty() == false){
        JDialog.setDefaultLookAndFeelDecorated(true);
        int response = JOptionPane.showConfirmDialog(null, "Do you want to save changes ?","My Notepad",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

        if(response == JOptionPane.NO_OPTION){
            System.exit(0);
        }
        else if(response == JOptionPane.YES_OPTION){
            JFileChooser save = new JFileChooser(); 
            int option = save.showSaveDialog(this); 



        if (option == JFileChooser.APPROVE_OPTION) {

            try {



                BufferedWriter out = new BufferedWriter(new FileWriter(save.getSelectedFile().getPath()));

                out.write(this.textArea.getText());

                out.close(); 

            } catch (Exception ex) {

                System.out.println(ex.getMessage());

            }

        }
        }    


    }
    else{
        System.exit(0);
    }   
}
JFrame


添加一个
WindowListener
。有关详细信息和示例,请参阅。

“我的另一个问题是…”。最好在单独的问题上提问,问答网站也是如此,而不是服务台。毕竟,如果有人知道其中一个问题的答案而不知道另一个问题的答案,他们应该回答吗?其他建议:1)使用逻辑一致的代码行和代码块缩进形式。缩进的目的是使代码的流程更易于遵循!2) 在源代码中只需要一行空白就可以了。
{
之后或
}
之前的空行通常也是多余的。3) 请学习常见的Java命名法(命名约定-例如
EachWordUpperCaseClass
firstWordLowerCaseMethod()
firstWordLowerCaseAttribute
,除非它是
常量
),并一致地使用它。我如何做到这一点?对不起,我只是个新手,我不知道那个windowListener。虽然我搜索了它,但我仍然无法理解它“我怎么做?”您是在看原始答案,还是在编辑的答案中添加了“如何编写窗口侦听器”的链接?我已经尽了全力,仍然无法添加窗口侦听器。请以(最小完整可验证示例)或(简短、自包含、正确的示例)。提示:为了使其最小化,示例不需要菜单或框架本身以外的组件。我已尝试添加windowListener,但我认为我的代码中有错误,它不允许添加。
public void windowClosing(WindowEvent e){
    if(textArea.getText().isEmpty() == false){
        JDialog.setDefaultLookAndFeelDecorated(true);
        int response = JOptionPane.showConfirmDialog(null, "Do you want to save changes ?","My Notepad",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

        if(response == JOptionPane.NO_OPTION){
            System.exit(0);
        }
        else if(response == JOptionPane.YES_OPTION){
            JFileChooser save = new JFileChooser(); 
            int option = save.showSaveDialog(this); 



        if (option == JFileChooser.APPROVE_OPTION) {

            try {



                BufferedWriter out = new BufferedWriter(new FileWriter(save.getSelectedFile().getPath()));

                out.write(this.textArea.getText());

                out.close(); 

            } catch (Exception ex) {

                System.out.println(ex.getMessage());

            }

        }
        }    


    }
    else{
        System.exit(0);
    }   
}