gpt4 book ai didi

java - CardLayout - 如何删除当前卡片 (Java Swing)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:05:18 24 4
gpt4 key购买 nike

如何删除用户当前使用的卡。我知道如何使用下一个和上一个功能浏览卡片布局,但如何删除用户所在的当前帧?例如,如果我有一个程序,我目前位于 5 个面板中的第 3 个面板,我将如何删除当前的第 3 个面板。删除它后,下一个或上一个将替换它。我不认为 removecurrentlayout 可以使用,因为我没有删除组件。例如,在代码中,如果我在 Card 3 上,我将如何删除它。

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class CardLayoutProg {

public static void main(String[] args) {

JFrame frame = new JFrame("CardLayout");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = frame.getContentPane();
JPanel buttonPanel = new JPanel();
JButton nextButton = new JButton("Next");
buttonPanel.add(nextButton);
contentPane.add(buttonPanel, BorderLayout.SOUTH);
final JPanel cardPanel = new JPanel();
final CardLayout cardLayout = new CardLayout();
cardPanel.setLayout(cardLayout);

for (int i = 1; i <= 5; i++) {
JButton card = new JButton("Card " + i);
card.setPreferredSize(new Dimension(200, 200));
String cardName = "card" + 123123;
cardPanel.add(card, cardName);
}

contentPane.add(cardPanel, BorderLayout.CENTER);
nextButton.addActionListener(e -> cardLayout.next(cardPanel));

frame.pack();
frame.setVisible(true);
}
}

最佳答案

如果您查看 Container 的文档,你会看到它有一个 remove() 方法。自 JPanel extends Container,它也有这个方法。您应该熟悉这些 API 文档以找到此类信息。

关于java - CardLayout - 如何删除当前卡片 (Java Swing),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58209666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com