Java 如何通过单击按钮从另一个jframe打开隐藏的jframe
我有一个名为TabletAddDetails的Jframe,当我单击后退按钮时,Jframe TabletAddDetails将被隐藏并打开Jframe Tablet。Jframe Tablet中有一个按钮打开Jframe TabletDetails。是否有任何方法可以打开以前隐藏的Jframe TabletDetails,而不是Jframe TabletDetails的全新实例,以便我回来时不会丢失进度条更新 以下是Jframe TabletDetails中back按钮的代码Java 如何通过单击按钮从另一个jframe打开隐藏的jframe,java,swing,Java,Swing,我有一个名为TabletAddDetails的Jframe,当我单击后退按钮时,Jframe TabletAddDetails将被隐藏并打开Jframe Tablet。Jframe Tablet中有一个按钮打开Jframe TabletDetails。是否有任何方法可以打开以前隐藏的Jframe TabletDetails,而不是Jframe TabletDetails的全新实例,以便我回来时不会丢失进度条更新 以下是Jframe TabletDetails中back按钮的代码 JButton
JButton btnBack = new JButton("BACK");
btnBack.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try
{
Tablet tab=new Tablet();
tab.setVisible(true);
tab.setLocationRelativeTo(null);
tab.setResizable(false);
tab.setTitle("Tablet");
setVisible(false);
try {
tab.setIconImage(ImageIO.read(new File("img/icon.png")));
}
catch (IOException exc) {
exc.printStackTrace();
}
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,e.getClass().getName() + ": " + e.getMessage());
}
}
});
以下是Jframe Tablet中Button TabletDetails的代码
JButton btnDetails = new JButton("TabletAddDetails");
btnDetails.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try
{
TabletAddDetails tabadd=new TabletAddDetails();
tabadd.setVisible(true);
tabadd.setLocationRelativeTo(null);
tabadd.setResizable(false);
tabadd.setTitle("Tablet Add Details");
setVisible(false);
try {
tabadd.setIconImage(ImageIO.read(new File("img/icon.png")));
}
catch (IOException exc) {
exc.printStackTrace();
}
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,e.getClass().getName() + ": " + e.getMessage());
}
}
});
在新jFrame中实现并传递对父jFrame的引用
void windowClosed(WindowEvent e) {
parent.setVisible(true);
}
在新jFrame中实现并传递对父jFrame的引用
void windowClosed(WindowEvent e) {
parent.setVisible(true);
}
在TabletAddDetails的构造函数中使用对Tablet的引用作为参数
private JFrame myTablet;
public TabletAddDetails(JFrame parent) {
myTablet = parent;
}
…在TabletAddDetails的构造函数中使用对Tablet的引用作为参数
private JFrame myTablet;
public TabletAddDetails(JFrame parent) {
myTablet = parent;
}
…无论如何,我只是找到了一个更新进度条的解决方案,即使我打开了Jframe TabletDetails的另一个实例。现在,当我回来时,进度条更新将继续。我以一种非常简单的方式实现它。我有一个计时功能,它是通过使用完成的。之前,我在同一Jframe TabletDetails中实现了swingworker。现在我所做的非常简单,只需在src文件夹中创建另一个类,并将swingworker中的所有代码复制到该类中,然后在按下Jframe TabletDetails中的buttion时调用该类
在这里,由于进度条的数据操作和更新是由另一个单独的类(即中的模型)完成的,该类链接到Jframe(中的视图),因此即使关闭并返回到同一Jframe,功能部件仍将连接到它。因此,我几乎不建议在实现JavaSwing项目时遵循这一点 无论如何,我只是找到了更新进度条的解决方案,即使我打开了Jframe TabletDetails的另一个实例。现在,当我回来时,进度条更新将继续。我以一种非常简单的方式实现它。我有一个计时功能,它是通过使用完成的。之前,我在同一Jframe TabletDetails中实现了swingworker。现在我所做的非常简单,只需在src文件夹中创建另一个类,并将swingworker中的所有代码复制到该类中,然后在按下Jframe TabletDetails中的buttion时调用该类
在这里,由于进度条的数据操作和更新是由另一个单独的类(即中的模型)完成的,该类链接到Jframe(中的视图),因此即使关闭并返回到同一Jframe,功能部件仍将连接到它。因此,我几乎不建议在实现JavaSwing项目时遵循这一点 ??该代码完全符合您的要求。我不明白你的意思。也许它不适用于你的应用程序的其余部分。?该代码完全符合您的要求。我不明白你的意思。也许它不适用于你的应用程序的其余部分。