卡布局问题的 JavaGUI 错误的父级

问题描述

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import java.awt.FlowLayout;
import javax.swing.JlayeredPane;
import java.awt.cardlayout;
import java.awt.Container;

import javax.swing.JTextPane;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.*;
import java.util.*;
public class pageone {

    private JFrame frame;
    private JTextField firstBox;
    private JTextField secondBox;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokelater(new Runnable() {
            public void run() {
                try {
                    pageone window = new pageone();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printstacktrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public pageone() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() 
    {
        cardlayout cardlayout = new cardlayout();
        frame = new JFrame();
        frame.setBounds(100,100,450,300);
        frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(new cardlayout(0,0));
        
        JPanel panel = new JPanel();
        frame.getContentPane().add(panel,"edcba");
        panel.setLayout(null);
        
        JPanel panel_1 = new JPanel();
        frame.getContentPane().add(panel_1,"abcde");
        panel_1.setLayout(null);
        
        JButton btnNewButton_2 = new JButton("New button");
        btnNewButton_2.setBounds(153,105,117,29);
        panel_1.add(btnNewButton_2);
        
        JButton btnNewButton_3 = new JButton("New button");
        btnNewButton_3.setBounds(128,161,29);
        panel_1.add(btnNewButton_3);
        
        JButton btnNewButton_1 = new JButton("Have fun");
        btnNewButton_1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                cardlayout.show(panel_1,null);
            }
        });
        
        btnNewButton_1.setBounds(312,222,29);
        panel.add(btnNewButton_1);
        
        JButton btnReset = new JButton("Reset");
        btnReset.setBounds(163,148,29);
        panel.add(btnReset);
        
        JLabel lblNewLabel = new JLabel("First name:");
        lblNewLabel.setBounds(22,73,80,16);
        panel.add(lblNewLabel);
        
        firstBox = new JTextField();
        firstBox.setBounds(110,68,258,26);
        panel.add(firstBox);
        firstBox.setColumns(10);
        
        JLabel lblNewLabel_1 = new JLabel("Last Name:");
        lblNewLabel_1.setBounds(20,131,82,16);
        panel.add(lblNewLabel_1);
        
        secondBox = new JTextField();
        secondBox.setBounds(113,126,255,26);
        panel.add(secondBox);
        secondBox.setColumns(10);
        
        JButton btnNewButton = new JButton("Generate a name");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
            }
        });
        btnNewButton.setBounds(22,29);
        panel.add(btnNewButton);
        
    
        
        
    }
}

上面是代码。 这是错误

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: wrong parent for cardlayout
    at java.desktop/java.awt.cardlayout.checkLayout(cardlayout.java:403)
    at java.desktop/java.awt.cardlayout.show(cardlayout.java:525)
    at pageone$2.actionPerformed(pageone.java:79)
    at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
    at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
    at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
    at java.desktop/javax.swing.DefaultButtonModel.setpressed(DefaultButtonModel.java:262)
    at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
    at java.desktop/java.awt.Component.processMouseEvent(Component.java:6617)
    at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
    at java.desktop/java.awt.Component.processEvent(Component.java:6382)
    at java.desktop/java.awt.Container.processEvent(Container.java:2264)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4993)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2322)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825)
    at java.desktop/java.awt.Lightweightdispatcher.retargetMouseEvent(Container.java:4934)
    at java.desktop/java.awt.Lightweightdispatcher.processMouseEvent(Container.java:4563)
    at java.desktop/java.awt.Lightweightdispatcher.dispatchEvent(Container.java:4504)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2308)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
    at java.desktop/java.awt.EventdispatchThread.pumpOneEventForFilters(EventdispatchThread.java:203)
    at java.desktop/java.awt.EventdispatchThread.pumpEventsForFilter(EventdispatchThread.java:124)
    at java.desktop/java.awt.EventdispatchThread.pumpEventsForHierarchy(EventdispatchThread.java:113)
    at java.desktop/java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:109)
    at java.desktop/java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:101)
    at java.desktop/java.awt.EventdispatchThread.run(EventdispatchThread.java:90)

以下是简要的设计结构: 框架 获取内容窗格 控制板 btn_NewButton btn_NewButton_1 面板_1

所以通常问题cardlayout问题在第75行(cardlayout.show)代码中一遍又一遍地发生,因此我对如何做到这一点感到非常困惑。

("你的帖子主要是代码") wdajkldaslkdjskdlasjdlksjlkdajskldajsdlksjaslkdjsdklsjdlkasjlkdjslkjadlkjdaksljdaslkajsdlkajsdlkasjdlkasdjlskdjaklsdjalksdjaksldjasldkjaslkjalksdjlkasdjlkasdjlkasdjalksdjlkasdjlaksdjalksdjalksdjalksdjalskdjalskdjaslkdjasldkjaskdljasldkajsldkajsdklajsdlkasjdklsadjlkasjdlaksdjl

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)