[英]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.