Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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打开隐藏的jframe_Java_Swing - Fatal编程技术网

Java 如何通过单击按钮从另一个jframe打开隐藏的jframe

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

我有一个名为TabletAddDetails的Jframe,当我单击后退按钮时,Jframe TabletAddDetails将被隐藏并打开Jframe Tablet。Jframe Tablet中有一个按钮打开Jframe TabletDetails。是否有任何方法可以打开以前隐藏的Jframe TabletDetails,而不是Jframe TabletDetails的全新实例,以便我回来时不会丢失进度条更新

以下是Jframe TabletDetails中back按钮的代码

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项目时遵循这一点

??该代码完全符合您的要求。我不明白你的意思。也许它不适用于你的应用程序的其余部分。?该代码完全符合您的要求。我不明白你的意思。也许它不适用于你的应用程序的其余部分。