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

标签 java swing jpanel jbutton

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

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

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

单击“下一步”时,我试图为第一帧的主面板设置 setVisible(false),为第二帧的主面板设置 setVisible(true)。但这是不可能做到的,因为类中的面板是私有(private)的。有解决上述问题的方法吗?

作为初学者,有人可以建议我如何开始使用此类应用程序吗?需要遵循的准则是什么?请帮助我查找与开始开发此类应用程序相关的文档。

看完答案后,我的评论是:

我使用以下代码从第一个面板转到下一个面板,但没有成功。

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,并在框架的卡片布局中添加了两个面板。当我使用上面的代码更改面板时,没有任何反应,第一个面板仍然出现。有人能告诉我,当两个面板都添加到 jFrame 的卡片布局时,如何编写代码从一个面板移动到另一个面板吗?

最佳答案

使用 CardLayout ,如图here (和 one frame )正如其他人所提到的。

Game view High Scores view

When Next is clicked, I'm trying to make setVisible(false) for main panel of first frame and setVisible(true) for main panel of second frame. But this cannot be done, since the panels within a class are private. Any resolution for the above problem?

将面板设置为public 访问级别,它们将可以从其他包中获得。


该行隐含了该代码片段中的一个问题:

UpgradeUtilityGUI upgradeUtilityGUI = new UpgradeUtilityGUI();  

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

关于java - 如何开始,使用几个面板开发基于 swing 的应用程序,每个面板都有下一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10053471/

相关文章:

java - org.jdesktop.swingbinding.JTableBinding$BindingTableModel 无法转换为 javax.swing.table.DefaultTableModel

java - 我如何画一个三角形?

java - 简单的 diff 算法,如 winmerge.exe

java - 始终将图标化的 JInternalFrames 保持在顶部

java - 向 JPanel 中的所有对象添加监听器

java - 使用 Java Swing 组件的 Z 顺序

java - 用于纯服务器端 war-packaged Java EE 6 应用程序的 Maven 原型(prototype)?

java - 用于计数出现次数的数据结构

java - 将自定义数据与 Swing 控件相关联?

java - C++ 与 Java 中函数重载的歧义