当前位置: 首页 > 知识库问答 >
问题:

如何将Jframe cardlayout中的“card”从属于card的Jpanel更改为另一个类?

赵经国
2023-03-14

我写了一个jframe与card布局如下代码:

public class Gui extends JFrame {


private static CardLayout cardlayout = new CardLayout();
   private static JPanel cards = new JPanel(cardlayout);

public Gui() {

cards.setLayout(cardlayout);
CasaPanel card =new CasaPanel();
cards.add(card,"casa");
InCash card_1 = new InCash();
cards.add(card_1,"in");
OutCash card_2 = new OutCash();
cards.add(card_2,"out");
setLayout(new BorderLayout());
add(cards, BorderLayout.CENTER);

}

public static void showCard(String name)
{
    cardlayout.show(cards, name);
}

我正在尝试调用方法来将卡片(ShowCard)从JPanel(CasaPanel)中的一个更改为另一个,它本身就是一张“卡片”。我想在点击另一个类的JPanel(CasaPanel)中的一个按钮后更改一张“卡片”。怎么做?我的意思是,我知道如何添加按钮和侦听器,但我不知道是否可以从属于该框架的Jpanel类调用JFrame中的方法?如何从其他类引用JFrame中的方法?我看了这个问题,但我真的不想把所有的代码放在一个类中。

共有1个答案

唐修明
2023-03-14

您的“卡片”将添加到使用卡片布局的面板中。如果你想换卡,你只需要访问布局管理员。因此,您可以从面板中使用getParent()方法获取父面板,然后使用getLayout()方法获取CardLayout。

所以ActionListener中的代码可能类似于:

JPanel parent = (JPanel)getParent();
CardLayout layout = parent.getLayout();
layout.show(panel, "...");

另外,你的类的一般设计是错误的。您不应该使用静态方法。阅读Swing教程中关于如何使用CardLayout的部分,了解工作示例和构建代码的更好方法。

 类似资料:
  • 我正在创建一个非常简单的Java Card Applet(版本2.2.2),但是我是Java Card的新手,我不知道如何将。class文件转换为。cap文件。我正在使用converter.bat文件。 我已经设法用Eclipse将单个。java文件编译为。class... 我试着将我的小程序移动到默认的包,并将包从代码的顶部移除... 它向我抛出一条错误消息: 我的java小程序:

  • 此布局允许使用容器中的XY坐标来定位项目。 语法 (Syntax) 以下是使用卡向导布局的简单语法。 layout: 'card' 例子 (Example) 以下是一个显示卡向导布局用法的简单示例。 <!DOCTYPE html> <html> <head> <link href = "https://cdnjs.cloudflare.com/ajax/libs/extjs/

  • 描述 (Description) card TabPanel:此布局允许使用容器中的XY坐标定位项目。 语法 (Syntax) 以下是使用卡片选项卡面板布局的简单语法 layout: 'layout-cardtabs' 例子 (Example) 以下是一个简单示例,显示了卡片选项卡面板布局的用法 <!DOCTYPE html> <html> <head> <link hre

  •     用于简化分布式开发:统一的错误代码、可区分版本的接口配置(保留老版本接口)、文件服务可配置化切换、前后端分离、token(时效性、一次性、顺序性)、配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态。     提供有多个组合即用的模块:用户中心、权限管理、配置管理、流程管理。。。     提供的快速开发的支持:代码生成、lombok集成、前台端分

  • WiFi Card 是一个将 WiFi 登录详细信息制作成二维码的工具,可以将制作好的二维码打印出来贴在冰箱或墙上,用户扫描二维码即可连接上 WiFi。 开发者承诺 WiFi 信息永远不会发送到服务器。 本地运行 在http://localhost:8080上运行官方 Docker 镜像 make run 在http://localhost:3000上运行实时重载服务器 make dev

  • RISC-V Reference Card An unofficial reference sheet for RISC-V, the free and libre ISA from Berkeley. (PDF). What's inside? The base ISA (RV32I), with opcode values and C-like descriptions Standard IS