package forward;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class P2 extends Panel
{
Label l1,l2;
TextField t1,t2;
Button btn;
P2()
{
setLayout(new GridLayout(1,4));
l1=new Label("姓名",Label.CENTER);
l2=new Label("学号",Label.CENTER);
t1=new TextField(10);
t2=new TextField(10);
btn=new Button("login");
add(l1);
add(t1);
add(l2);
add(t2);
add(btn);
}
}
class P3 extends Panel{
Label l1,l2;
TextField t1,t2;
P3()
{
setLayout(new GridLayout(1,4));
l1=new Label("姓名",Label.CENTER);
l2=new Label("学号",Label.CENTER);
t1=new TextField(10);
t2=new TextField(10);
add(l1);
add(t1);
add(l2);
add(t2);
}
}
public class P1 extends Panel{
public static void main(String args[]){
new ma();
}
}
class ma extends JFrame implements ActionListener{
P2 pn2;
P3 pn3;
CardLayout cc=new CardLayout();
ma()
{super("");
pn2=new P2();
pn3=new P3();
setLayout(cc);
add("first",pn2);
add("second",pn3);
pn2.btn.addActionListener(this);
setSize(400,400);
show();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==pn2.btn)
{
String ss="123";
if(ss.compareTo(pn2.t1.getText())==0&&ss.compareTo(pn2.t2.getText()) ==0)
cc.show(this,"second");
}
}
}
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: wrong parent for CardLayout
at java.awt.CardLayout.checkLayout(Unknown Source)
at java.awt.CardLayout.show(Unknown Source)
at forward.ma.actionPerformed(P1.java:73)
at java.awt.Button.processActionEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)问题1;为什么我用JLabel的时候报了另一种异常,后来改成Label就是抱现在这样的异常。
问题2:到这一步该怎么解决?问题好象是出在cc.show(this,"second");上。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class P2 extends Panel
{
Label l1,l2;
TextField t1,t2;
Button btn;
P2()
{
setLayout(new GridLayout(1,4));
l1=new Label("姓名",Label.CENTER);
l2=new Label("学号",Label.CENTER);
t1=new TextField(10);
t2=new TextField(10);
btn=new Button("login");
add(l1);
add(t1);
add(l2);
add(t2);
add(btn);
}
}
class P3 extends Panel{
Label l1,l2;
TextField t1,t2;
P3()
{
setLayout(new GridLayout(1,4));
l1=new Label("姓名",Label.CENTER);
l2=new Label("学号",Label.CENTER);
t1=new TextField(10);
t2=new TextField(10);
add(l1);
add(t1);
add(l2);
add(t2);
}
}
public class P1 extends Panel{
public static void main(String args[]){
new ma();
}
}
class ma extends JFrame implements ActionListener{
P2 pn2;
P3 pn3;
CardLayout cc=new CardLayout();
ma()
{super("");
pn2=new P2();
pn3=new P3();
setLayout(cc);
add("first",pn2);
add("second",pn3);
pn2.btn.addActionListener(this);
setSize(400,400);
show();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==pn2.btn)
{
String ss="123";
if(ss.compareTo(pn2.t1.getText())==0&&ss.compareTo(pn2.t2.getText()) ==0)
cc.show(this,"second");
}
}
}
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: wrong parent for CardLayout
at java.awt.CardLayout.checkLayout(Unknown Source)
at java.awt.CardLayout.show(Unknown Source)
at forward.ma.actionPerformed(P1.java:73)
at java.awt.Button.processActionEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)问题1;为什么我用JLabel的时候报了另一种异常,后来改成Label就是抱现在这样的异常。
问题2:到这一步该怎么解决?问题好象是出在cc.show(this,"second");上。
import java.awt.*;
import java.awt.event.*;class P2 extends Panel {
Label l1, l2; TextField t1, t2; Button btn; P2() {
setLayout(new GridLayout(1, 4));
l1 = new Label("Name", Label.CENTER);
l2 = new Label("Num", Label.CENTER);
t1 = new TextField(10);
t2 = new TextField(10);
btn = new Button("login");
add(l1);
add(t1);
add(l2);
add(t2);
add(btn);
}}class P3 extends Panel {
Label l1, l2; TextField t1, t2; P3() {
setLayout(new GridLayout(1, 4));
l1 = new Label("Name", Label.CENTER);
l2 = new Label("Num", Label.CENTER);
t1 = new TextField(10);
t2 = new TextField(10);
add(l1);
add(t1);
add(l2);
add(t2);
}}public class P1 extends Panel {
public static void main(String args[]) {
new ma(); }}class ma extends JFrame implements ActionListener {
P2 pn2; P3 pn3; CardLayout cc = new CardLayout(); ma() {
super("");
pn2 = new P2();
pn3 = new P3();
this.getContentPane().setLayout(cc);
this.getContentPane().add("first", pn2);
this.getContentPane().add("second", pn3);
pn2.btn.addActionListener(this);
setSize(400, 400);
show();
} public void actionPerformed(ActionEvent e) {
if (e.getSource() == pn2.btn) {
String ss = "123";
if (ss.compareTo(pn2.t1.getText()) == 0 && ss.compareTo(pn2.t2.getText()) == 0) {
if (this.getContentPane().getLayout() == this.cc) {
this.cc.show(this.getContentPane(), "second");
}
}
}
}}
是这样吗?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*; class P2 extends Panel {
Label l1, l2; TextField t1, t2; Button btn; P2() {
setLayout(new GridLayout(1, 4));
l1 = new Label("Name", Label.CENTER);
l2 = new Label("Num", Label.CENTER);
t1 = new TextField(10);
t2 = new TextField(10);
btn = new Button("login");
add(l1);
add(t1);
add(l2);
add(t2);
add(btn);
} } class P3 extends Panel {
Label l1, l2; TextField t1, t2; P3() {
setLayout(new GridLayout(1, 4));
l1 = new Label("Name", Label.CENTER);
l2 = new Label("Num", Label.CENTER);
t1 = new TextField(10);
t2 = new TextField(10);
add(l1);
add(t1);
add(l2);
add(t2);
} } public class P1 extends Panel {
public static void main(String args[]) {
new ma(); } } class ma extends JFrame implements ActionListener {
P2 pn2; P3 pn3; CardLayout cc = new CardLayout(); ma() {
super("");
pn2 = new P2();
pn3 = new P3();
this.getContentPane().setLayout(cc);
this.getContentPane().add("first", pn2);
this.getContentPane().add("second", pn3);
pn2.btn.addActionListener(this);
setSize(400, 400);
show();
} public void actionPerformed(ActionEvent e) {
if (e.getSource() == pn2.btn) {
String ss = "123";
if (ss.compareTo(pn2.t1.getText()) == 0 && ss.compareTo(pn2.t2.getText()) == 0) {
if (this.getContentPane().getLayout() == this.cc) {
this.cc.show(this.getContentPane(), "second");
}
}
}
} }