繁体   English   中英

新的Jframe关闭时更新Jlist

[英]Update Jlist when new Jframe closing

我试图找到有关我的问题的某种信息,但没有成功,可能是Stackowerflow太大,或者我使用了错误的关键字。

无论如何,我的问题是,我是从尖端世界迁移到Java的新手。 我有一个项目正在开发一个简单的Servicedesk软件。 我已经制作了一个JFrame作为Startscreen,其中包含一些按钮和一个JList来显示案例。 起始帧上的按钮之一是创建新案例。 该按钮将打开一个新的Jframe,用户可以在其中输入所需的信息和一个按钮save:将信息保存在列表中。 该列表将在不同的类中进行处理,如下所示。

启动Jframe将打开将保存在listclass列表中的Jcase案例,并关闭自身并返回到Start jframe。 当用户返回到开始Jfram时,我希望开始Jframe中的Jlist刷新并显示新的已保存的大小写-我不知道该怎么做。

我想我要在启动Jframe中写一些事件,当Jframe关闭时,它必须响应,但是我不知道如何。

这很难解释,但是我没有上载图像的声誉。

我认为您可能要考虑创建一个新的自定义对话框,该对话框在您选择按钮时显示。 这是我方便参考的示例代码。 这里的主要项目是显示对话框的静态方法,并且该对话框是模式对话框,因此执行会“暂停”直到关闭对话框,然后您才能捕获对话框的已保存数据并从静态方法返回显示对话框。 将此用作模板并根据需要进行修改。 更具体地说,“响应”是从方法返回的值。 实际上,“响应”不是一个简单的布尔值(我只是用它来测试逻辑),而是包含从对话框的输入控件中收集的所有信息的listClass。 您希望从主JFrame代码开始对getUserInput()进行调用,以开始进行滚动。 在actionPerformed()方法中,您将从对话框控件中获取数据,并填充包含返回信息的类。

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class ConfirmDialog extends JDialog implements ActionListener
{   
        private boolean response = false;
        private JButton btnOK = new JButton("OK");
        private JButton btnCancel = new JButton("Cancel");
        private JPanel contentPane = new JPanel();

        public static boolean getUserInput()
        {
                    return new ConfirmDialog().showDialog();

        }

        private boolean showDialog()
        {
                    setVisible(true);
                    //next line executes only after dialog is disposed,                 since dialog is modal.
                    return response;
        }

        private ConfirmDialog()
        {
                         setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
                    btnOK.setActionCommand("OK");
                    btnCancel.setActionCommand("Cancel");
                    btnOK.addActionListener(this);
                    btnCancel.addActionListener(this);
                    contentPane.add(btnOK);
                    contentPane.add(btnCancel);
                    setContentPane(contentPane);
                    setModal(true);
                    pack();

        }
        public void actionPerformed(ActionEvent e)
        {
                    if(e.getActionCommand().equals(btnOK.getActionCommand()))
                    {
                                response = true;
                    }
                    setVisible(false);
                    dispose();
        }

        /**
         * @param args
         */
        public static void main(String[] args) {
                    // TODO Auto-generated method stub
                    System.out.println(getUserInput());

        }

 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM