gpt4 book ai didi

java - 尝试将使用 CardLayout 的 JPanel 添加到 JFrame

转载 作者:行者123 更新时间:2023-11-30 03:35:19 25 4
gpt4 key购买 nike

我无法发现错误,当我运行时,我得到一个空白帧

我正在尝试制作一个小程序,其中您看到的第一个屏幕包含 4 个按钮,每个按钮对应我必须实现的每种排序算法,然后单击该按钮后,您将进入一个新面板,该面板具有图形表示正在排序的数组(我已经在一个较小的小程序中完成了此操作)

这是我的代码:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class newCLayoutTest extends JPanel{

private JPanel holderPanel, mainPanel, bubblePanel, selectionPanel, mergePanel, quickPanel;
private JButton bubbleButton, selectionButton, mergeButton, quickButton;

private CardLayout cardLayout = new CardLayout();

public newCLayoutTest()
{
JLabel label = new JLabel("Label");
holderPanel = new JPanel();
mainPanel = new JPanel();
bubblePanel = new JPanel();
selectionPanel = new JPanel();
mergePanel = new JPanel();
quickPanel = new JPanel();

holderPanel.setLayout(cardLayout);

bubbleButton = new JButton();
selectionButton = new JButton();
mergeButton = new JButton();
quickButton = new JButton();

//mainPanel.setLayout(new GridLayout(2,2));
mainPanel.add(bubbleButton);
mainPanel.add(selectionButton);
mainPanel.add(mergeButton);
mainPanel.add(quickButton);

bubblePanel.add(label);

holderPanel.add(mainPanel, "1");
holderPanel.add(bubblePanel, "2");

cardLayout.show(holderPanel,"2");




}

}

Controller 类:

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class testControl extends JFrame{

/**
*
*/
private static final long serialVersionUID = 1L;

public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable() {


public void run() {

newCLayoutTest panel = new newCLayoutTest();
JFrame frame = new JFrame("LET THIS WORK");

// frame.setLayout(new BorderLayout());

frame.add(panel);
//frame.getContentPane().add(panel);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(600, 400);
frame.setVisible(true);
}
});
}
}

最佳答案

holderPanel 尚未添加到包含组件的面板,即 newCLayoutTest

add(holderPanel);

请注意,无需子类化 JPanel,因为您没有向面板添加任何新功能。您只需创建一个面板并添加组件即可。还要遵循 Java 命名约定,即使用大写首字母作为类名,例如NewCLayoutTest

关于java - 尝试将使用 CardLayout 的 JPanel 添加到 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28093014/

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