当前位置: 首页 > 知识库问答 >
问题:

单击按钮时,我的Jframe不会保持打开状态

东方新霁
2023-03-14
Button declaration:
      btnAdd = new JButton("Add Student");
      btnAdd.addActionListener(bh);
      btnEdit = new JButton("EDIT");
      btnEdit.addActionListener(bh);
      btnEdit.setEnabled(false); 
      btnDelete = new JButton("DELETE");
      btnDelete.addActionListener(bh);
      btnDelete.setEnabled(false);
      btnSort = new JButton("Update");
      btnSort.addActionListener(bh);
      btnSave = new JButton("SAVE");
      btnSave.addActionListener(bh);
      btnSave.setActionCommand("Save");
      btnAddInput = new JButton("Add Student");
      btnAddInput.addActionListener(bh);
      btnAddInput.setActionCommand("AddInput");
      btnCancel = new JButton("Cancel");
      btnCancel.addActionListener(bh);
      frame1 = new JFrame("Edit Student");
      frame1.setVisible(false);
      frame1.setResizable(false);
      frame1.setDefaultCloseOperation(HIDE_ON_CLOSE);
      frame1.add(addPanel, BorderLayout.CENTER);
      frame1.add(buttonPanel2, BorderLayout.PAGE_END);
      frame1.pack();

按钮处理程序:
类ButtonHandler实现ActionListener{public void actionPerformed(ActionEvent e){

               if (e.getActionCommand().equals("Add Student")) {
               txtID.setText("");
               txtName.setText("");
               txtMajor.setText("");
               txtGPA.setText("");
               txtCampus.setText("");
               txtAddress.setText("");
               txtPhone.setText("");
               txtEmail.setText("");
               txtCurrent.setText("");
               txtPast.setText("");
               txtFuture.setText("");
               txtNotes.setText("");


               frame1.setTitle("Add Student data"); // title bar name for add
               frame1.setVisible(true);
               Student student = new Student(txtID.getText(), txtName.getName(), txtMajor.getText(), txtGPA.getText(), txtCampus.getText(), txtAddress.getText(), txtPhone.getText(),txtEmail.getText(), txtCurrent.getText(), txtPast.getText(), txtFuture.getText(), txtNotes.getText());
               al.add(student);
              try {
                  Student.saveSerialized(student, txtID.getText());
              } catch (IOException ex) {
                  Logger.getLogger(IAdvise.class.getName()).log(Level.SEVERE, null, ex);
              }
               } else if (e.getActionCommand().equals("EDIT")) {
               frame1.setVisible(true); 
               txtID.setText(data[rowIndex][0] + ""); 
               txtName.setText(data[rowIndex][1] + ""); 
               txtMajor.setText(data[rowIndex][2] + "");
               txtGPA.setText(data[rowIndex][3] + "");
               txtCampus.setText(data[rowIndex][4] + "");
               txtAddress.setText(data[rowIndex][5] + "");
               txtPhone.setText(data[rowIndex][6] + "");
               txtEmail.setText(data[rowIndex][7] + "");
               txtCurrent.setText(data[rowIndex][8] + "");
               txtPast.setText(data[rowIndex][9] + "");
               txtFuture.setText(data[rowIndex][10] + "");
               txtNotes.setText(data[rowIndex][11] + "");
               txtID.setEditable(false); 
               frame1.setTitle("Enter Student data"); 
               btnAddInput.setActionCommand("Edit2");
               btnAddInput.setText("ACCEPT");


            } else if (e.getActionCommand().equals("DELETE")) {
               int confirm = JOptionPane.showConfirmDialog(frame, "ARE YOU SURE?", "CONFIRM",
                        JOptionPane.YES_NO_OPTION);

               if (confirm == 0) {
                  rowIndex = table.getSelectedRow();
                  rowNumber = 0;

                  noOfStudents--;
                  for (int i = 0; i <= 10; i++) {
                     if (rowIndex != i && i <= noOfStudents) {
                        data[rowNumber][0] = data[i][0];
                        data[rowNumber][1] = data[i][1];
                        data[rowNumber][2] = data[i][2];
                        data[rowNumber][3] = data[i][3];
                        data[rowNumber][4] = data[i][4];
                        data[rowNumber][5] = data[i][5];
                        data[rowNumber][6] = data[i][6];
                        data[rowNumber][7] = data[i][7];
                        data[rowNumber][8] = data[i][8];
                        data[rowNumber][9] = data[i][9];
                        data[rowNumber][10] = data[i][10];
                        data[rowNumber][11] = data[i][11];


                        rowNumber++;
                     } else if (rowIndex != i && i > noOfStudents) {
                        data[rowNumber][0] = "";
                        data[rowNumber][1] = "";
                        data[rowNumber][2] = "";
                        data[rowNumber][3] = "";
                        data[rowNumber][4] = "";
                        data[rowNumber][5] = "";
                        data[rowNumber][6] = "";
                        data[rowNumber][7] = "";
                        data[rowNumber][8] = "";
                        data[rowNumber][9] = "";
                        data[rowNumber][10] = "";
                        data[rowNumber][11] = "";

                        rowNumber++;
                     }
                  }
                  if (noOfStudents == 1000) {
                       btnAdd.setEnabled(false);
                   }
                  else {
                       btnAdd.setEnabled(true);
                   }
                  if (noOfStudents == 0) {
                     btnDelete.setEnabled(false);
                     btnEdit.setEnabled(false);
                  } else {
                     btnDelete.setEnabled(true);
                     btnEdit.setEnabled(true);
                  }

                  rowIndex = table.getSelectedRow();
                  if (data[rowIndex][0] == null || data[rowIndex][0] == "") {
                     btnEdit.setEnabled(false);
                     btnDelete.setEnabled(false);
                  } else {
                     btnEdit.setEnabled(true);
                     btnDelete.setEnabled(true);
                  }

                  table.updateUI();

               }

共有1个答案

蒋权
2023-03-14

基本上,当您在帧上调用setvisible时,代码将继续运行而不停止。

这会导致...

frame1.setVisible(true);
.
.
.
frame1.dispose();

基本上,您使框架可见,但在稍后的代码中,您将其处理掉。

 类似资料:
  • 我正在编写一个包含许多按钮的程序,当我单击其中一个按钮时,我希望它打开一个包含一些txt文件信息的JTextArea。我试图将JTextArea添加到按钮中,但它没有打开任何东西。我是Java新手,所以我不知道这是否是正确的方法。 我在GUI中定义了按钮和JTextArea 这是我在public void actionPerformed(ActionEvent e)中编写的代码

  • 问题内容: 如果下拉菜单可见,并且我在下拉菜单外部单击,它将关闭。我需要它不关闭。 从文档中: 打开后,该插件还会添加 .dropdown-backdrop 作为单击区域,以在菜单外单击时关闭下拉菜单。 我可以添加什么JavaScript以防止下拉列表关闭? 问题答案: 从_Bootstrap_文档的事件部分: :调用hide实例方法后,立即触发此事件。 对于初学者来说,为了防止下拉菜单关闭,我们

  • 问题内容: 我有一个带有3个EditText的对话框,可用来获取ftp地址,用户名和密码。我使用.setNeutralButton创建一个“测试连接”按钮。我设法将其连接到ftp并显示结果吐司,但我不希望“测试按钮”关闭对话框。在连接测试期间如何保持对话框打开? 问题答案: 据我所知,不扩展类是不可能的。但是,使用您拥有的功能,将其单独放置并使用可能会更容易,更好。您所要做的就是为此将代码放入新代

  • 我需要在商品搜索中键入“香蕉”,然后点击“GO”按钮。 在堆栈溢出的帮助下,我可以调出火狐,输入“香蕉”...但是“Go”按钮(基于检查的Go3)不会开火!! 我试过element.click(),试过ActionChains,试过将光标移动到元素,试过验证它已经启用。它只是不会转到下一个搜索页面。 我没有得到任何错误...它只是没有进入下一页。 谢谢你能提供的任何帮助。快把我逼疯了!

  • 很多人可能都知道,我是一个完全的Java新手。我已经尝试过对此进行研究(通过阅读StackOverflow上的其他帖子,在谷歌上搜索,并询问一位不太熟悉java的朋友),但我无法理解。答案可能很清楚也很简单,但我对此视而不见。我试图从不同的帧中处理JFrame。 我的应用程序应该按如下方式工作: 帧X有一个按钮,按下时:生成帧Y 帧Y有一个按钮,按下时:生成帧Z Frame Z有一个按钮,按下时:

  • 我一直在工作的swings框架,其中有一个卡片布局面板在大型机。 我总共有20个jpanels添加到我的卡片布局面板中,在这20个面板中,有3个面板是由一个按钮组成的,点击这个按钮会加载另一个JFrame。当我使用IDE运行这个GUI时,它工作得很好,但是,当我运行jar文件时,在三种情况中的两种情况下,当单击按钮时,它不显示帧。 这是我正在为ButtonListener使用的代码。这个按钮只在一