java - JFrame、删除和创建 JPanel

标签 java swing jframe jpanel layout-manager

我有一个 JFrame,在其中创建和从外部类中删除面板,问题是,当我来回移动时(多次删除和创建面板,我不想引用所有面板、所有数据)应该传递(框架和 boolean 值[即将实现])将在构造函数中)它向下移动整个内容。

我正在使用GridBagLayout,也许它有一些隐藏的问题。我不想使用CardLayout,所以请不要推荐它。

为什么会这样?我应该怎样做才能阻止它?

代码

deleteContract = new JButton("Usuń kontrakt");
        deleteContract.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {

                ACDeleteContract ACDeleteContract = new ACDeleteContract(frame);
                removeAll();
            add(ACDeleteContract);
            revalidate();
            repaint();
        }
    });
    deleteContract.setPreferredSize(new Dimension(200, 50));
    c.gridy = 2;
    menu.add(deleteContract, c);

    back = new JButton("Powrót");
    back.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
           ACMenu menu = new ACMenu(frame);
           removeAll();
           add(menu);
           revalidate();
           repaint();
       } 
    });

最佳答案

嗯,安德鲁·汤普森引导我走上了一条我之前不想走的好路。

给后代一些提示:D。

在框架中执行的操作

CardLayout cards = new CardLayout();
    JPanel cardPanel = new JPanel();
    cardPanel.setLayout(cards);

    ACReadContract ACReadContract = new ACReadContract(cards, cardPanel);
    //your external JPanel classes with arguments such as above
    ACMenu ACMenu = new ACMenu(cards, cardPanel);

    cardPanel.add(ACMenu, "Menu");
    cardPanel.add(ACReadContract, "ReadContract");
    //naming and adding them for easy moving between them

    //adding this to frame
    add(cardPanel);

在外部类中(构造函数的开头,类应该扩展 JPanel)

private JPanel menu, cardPanel1;
private CardLayout cardLayout1;

public ACMenu(CardLayout cardLayout, JPanel cardPanel) {

    cardLayout1=cardLayout;
    cardPanel1 = cardPanel;

外部类中的实际监听器

cardLayout1.next(cardPanel1);

cardLayout1.show(cardPanel1, "ReadContract");

我希望我能帮助那些有类似问题的人。

关于java - JFrame、删除和创建 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13897017/

相关文章:

java - DafaultTableModel 从文件读取到 setValueAt(value, row, col) Java

java - 俄罗斯方 block ,移动一 block

Java - 关闭事件窗口

java - JFrame从一个类到另一个类的内部框架

java jframe窗口不调整大小

java - "=="是否仅适用于某些数据类型?

java - 如何将逻辑排除在 JSP 之外?

java - 将 apache Shiro 与 Spring MVC 非 xml 项目一起使用

java - 在可编辑的 EditorPane 上添加 HyperlinkListener

java - 使用 MS-Excel 打开 .xlsx 时遇到问题,其中 APACHE POI XSSFDataValidationHelper 用于数字和日期验证