Java 如何开始,开发基于swing的应用程序,每个应用程序都有几个面板和下一个按钮

Java 如何开始,开发基于swing的应用程序,每个应用程序都有几个面板和下一个按钮,java,swing,jpanel,jbutton,next,Java,Swing,Jpanel,Jbutton,Next,我是java新手,我正在创建一个基于swing的UI。我已经创建了两个框架,每个框架在同一个包中的单独的.java文件中 这两个框架代表应用程序的两个屏幕(面板)。单击第一帧中的“下一步”按钮时,它应移动到第二帧 当我检查时,这两个类都有main方法,我认为这应该是创建应用程序的正确方法。应该只有一种主要方法 单击“下一步”时,我将尝试使第一帧的主面板的setVisible(false)和第二帧的主面板的setVisible(true)。但这不能做到,因为类中的面板是私有的。以上问题有什么解决办

我是java新手,我正在创建一个基于swing的UI。我已经创建了两个框架,每个框架在同一个包中的单独的.java文件中

这两个框架代表应用程序的两个屏幕(面板)。单击第一帧中的“下一步”按钮时,它应移动到第二帧

当我检查时,这两个类都有main方法,我认为这应该是创建应用程序的正确方法。应该只有一种主要方法

单击“下一步”时,我将尝试使第一帧的主面板的setVisible(false)和第二帧的主面板的setVisible(true)。但这不能做到,因为类中的面板是私有的。以上问题有什么解决办法吗

由于我是初学者,有人能建议我如何启动这类应用程序吗?需要遵循哪些准则?请帮助我查找与开发此类应用程序相关的文档

看完答案后,我的评论如下:

我使用下面的代码从第一个面板转到下一个面板,但没有工作

private void gotoNextPanel(){
//    jPanelFirstScreen.setVisible(false);
      JPanelSecondScreen jpanelSecondScreen= new JPanelSecondScreen();
      jpanelSecondScreen.setVisible(true);
      UpgradeUtilityGUI upgradeUtilityGUI = new UpgradeUtilityGUI();
      upgradeUtilityGUI.removeAll();
      validate();
      repaint();
//      upgradeUtilityGUI.add(jpanelSecondScreen);
            upgradeUtilityGUI.getContentPane().add(jpanelSecondScreen, "card2");
      jpanelSecondScreen.setVisible(true);
      validate();
      repaint();

    }

我正在使用netbeans,并且已经在frame的cardlayout中添加了两个面板。当我使用上面的代码来更改面板时,什么都没有发生,第一个面板仍然出现。有人能告诉我,当两个面板都添加到jFrame的cardlayout中时,如何编写从一个面板移动到另一个面板的代码?

如果您的应用程序简单到只有两个面板,那么您不应该创建两个jFrame。您应该使用两个JPanel创建一个JFrame,每个JPanel都包含必要的信息。如果准备好使用第一个面板,则可以在其上调用setVisible(false),并在第二帧上调用setVisible(true)。这是最容易理解的解决方案之一。

但是,这只取决于您是否对您有好处,或者您是否希望使用更详细的解决方案。

如果您的应用程序简单到只有两个面板,那么您不应该创建两个JFrame。您应该使用两个JPanel创建一个JFrame,每个JPanel都包含必要的信息。如果准备好使用第一个面板,则可以在其上调用setVisible(false),并在第二帧上调用setVisible(true)。这是最容易理解的解决方案之一。

但是,这只取决于您是否对您有利,或者您是否希望使用更详细的解决方案。

您应该做的是为应用程序提供一个单一的
JFrame
,然后在希望在屏幕之间移动时添加和删除
JPanels

您的每个
jpanel
基本上应该有以下内容。。。 1.一个名为“下一步”的按钮 2.每个按钮的
ButtonListener
,告诉
JFrame
加载面板2、面板3等

作为
ButtonListener
的一部分,您基本上只需要调用类似
JFrame.removeAll()
的函数来删除现有面板,然后调用
JFrame.add(JPanel)
来添加下一个面板


通过使用1
JFrame
,您也只有1个
main()
方法。

您应该为应用程序使用一个
JFrame
,然后在希望在屏幕之间移动时添加和删除
JPanels

您的每个
jpanel
基本上应该有以下内容。。。 1.一个名为“下一步”的按钮 2.每个按钮的
ButtonListener
,告诉
JFrame
加载面板2、面板3等

作为
ButtonListener
的一部分,您基本上只需要调用类似
JFrame.removeAll()
的函数来删除现有面板,然后调用
JFrame.add(JPanel)
来添加下一个面板


通过使用1
JFrame
,您也只有1
main()
方法。

不要使用两个或更多的
JFrames
,也不要使用分离和编译的
Jar文件,这是通往地狱的路,最好看一看,

不要使用两个或更多的
JFrames
,也不要使用分离和编译的
Jar文件,这是一条通往地狱的路,最好看看,

使用a,如其他人所示(和)

单击“下一步”时,我将尝试使第一帧的主面板的setVisible(false)和第二帧的主面板的setVisible(true)。但这不能做到,因为类中的面板是私有的。以上问题有什么解决办法吗

使面板
公开
访问级别,它们将从其他软件包中提供


该代码段中的一个问题由以下行暗示:

UpgradeUtilityGUI upgradeUtilityGUI = new UpgradeUtilityGUI();  
它在添加到容器之前就超出了范围。此外,他们在向布局中添加新卡时不需要删除任何内容,也不需要调用
repaint()

使用,如其他人所述(和)

单击“下一步”时,我将尝试使第一帧的主面板的setVisible(false)和第二帧的主面板的setVisible(true)。但这不能做到,因为类中的面板是私有的。以上问题有什么解决办法吗

使面板
公开
访问级别,它们将从其他软件包中提供


该代码段中的一个问题由以下行暗示:

UpgradeUtilityGUI upgradeUtilityGUI = new UpgradeUtilityGUI();  

它在添加到容器之前就超出了范围。此外,在向布局中添加新卡时,他们应该不需要删除任何内容,也不需要调用
repaint()

CardLayout可用于此目的。您可以在此处找到此功能,您有权,card layout可在此处提供帮助!但我不想在我的回答中详细介绍布局,因为提问者是java GUI开发的新手。“我不想详细介绍布局……因为提问者是java GUI开发的新手。”这是让新手知道他们对布局有多重要的最佳时机