小弟刚开始学java,想用CardLayout布局添加两块面板,并且在两块面板上各自显示一条直线
以下是我写的代码,怎么调都不出来:麻烦帮我看看,先谢了:)
import java.awt.*;
import java.awt.event.*;//画一条线
class PanelLine1 extends Panel{
public void paint(Graphics g){
g.drawLine(50,50,200,200);
}
}//画另一条线
class PanelLine2 extends Panel{
public void paint(Graphics g){
g.drawLine(100,100,200,100);
}
}//窗体
class CardFrame extends Frame{
Button btnOne;
Button btnTwo;
Panel panNorth;
Panel panCenter;
Panel panOne;
Panel panTwo;
CardLayout cl;
Graphics g;
//构造方法
public CardFrame(){
panNorth = new Panel();
panCenter = new Panel();
btnOne = new Button("One");
btnTwo = new Button("Two");
setLayout(new BorderLayout());
add(panNorth,BorderLayout.NORTH);
add(panCenter,BorderLayout.CENTER);
panNorth.add(btnOne);
panNorth.add(btnTwo);
cl = new CardLayout();
panOne = new Panel();
panTwo = new Panel();
//实例化画线条的面板
PanelLine1 pl1 = new PanelLine1();
PanelLine2 pl2 = new PanelLine2();
panOne.add(pl1);
panTwo.add(pl1); panCenter.setLayout(cl);
panCenter.add("hong",panOne);
panCenter.add("lan",panTwo);
//注册监听
btnOne.addActionListener(new MyActionEvent());
btnTwo.addActionListener(new MyActionEvent());
}
//内部监听类
private class MyActionEvent implements ActionListener{
public void actionPerformed(ActionEvent ae){
if(ae.getActionCommand() == "One"){
cl.show(panCenter,"hong");
}
if(ae.getActionCommand() == "Two"){
cl.show(panCenter,"lan");
}
}
}
}
class Test {
public static void main(String[] args){
CardFrame cf= new CardFrame();
cf.setSize(200,300);
cf.setVisible(true);
}}
以下是我写的代码,怎么调都不出来:麻烦帮我看看,先谢了:)
import java.awt.*;
import java.awt.event.*;//画一条线
class PanelLine1 extends Panel{
public void paint(Graphics g){
g.drawLine(50,50,200,200);
}
}//画另一条线
class PanelLine2 extends Panel{
public void paint(Graphics g){
g.drawLine(100,100,200,100);
}
}//窗体
class CardFrame extends Frame{
Button btnOne;
Button btnTwo;
Panel panNorth;
Panel panCenter;
Panel panOne;
Panel panTwo;
CardLayout cl;
Graphics g;
//构造方法
public CardFrame(){
panNorth = new Panel();
panCenter = new Panel();
btnOne = new Button("One");
btnTwo = new Button("Two");
setLayout(new BorderLayout());
add(panNorth,BorderLayout.NORTH);
add(panCenter,BorderLayout.CENTER);
panNorth.add(btnOne);
panNorth.add(btnTwo);
cl = new CardLayout();
panOne = new Panel();
panTwo = new Panel();
//实例化画线条的面板
PanelLine1 pl1 = new PanelLine1();
PanelLine2 pl2 = new PanelLine2();
panOne.add(pl1);
panTwo.add(pl1); panCenter.setLayout(cl);
panCenter.add("hong",panOne);
panCenter.add("lan",panTwo);
//注册监听
btnOne.addActionListener(new MyActionEvent());
btnTwo.addActionListener(new MyActionEvent());
}
//内部监听类
private class MyActionEvent implements ActionListener{
public void actionPerformed(ActionEvent ae){
if(ae.getActionCommand() == "One"){
cl.show(panCenter,"hong");
}
if(ae.getActionCommand() == "Two"){
cl.show(panCenter,"lan");
}
}
}
}
class Test {
public static void main(String[] args){
CardFrame cf= new CardFrame();
cf.setSize(200,300);
cf.setVisible(true);
}}
import java.awt.event.*;//画一条线
class PanelLine1 extends Panel{
public void paint(Graphics g){
g.drawLine(50,50,200,200);
}
}//画另一条线
class PanelLine2 extends Panel{
public void paint(Graphics g){
g.drawLine(100,100,200,100);
}
}//窗体
class CardFrame extends Frame{
Button btnOne;
Button btnTwo;
Panel panNorth;
Panel panCenter;
CardLayout cl;
Graphics g;
//构造方法
public CardFrame(){
panNorth = new Panel();
panCenter = new Panel();
btnOne = new Button("One");
btnTwo = new Button("Two");
setLayout(new BorderLayout());
add(panNorth,BorderLayout.NORTH);
add(panCenter,BorderLayout.CENTER);
panNorth.add(btnOne);
panNorth.add(btnTwo);
cl = new CardLayout();
//实例化画线条的面板
PanelLine1 pl1 = new PanelLine1();
PanelLine2 pl2 = new PanelLine2(); panCenter.setLayout(cl);
panCenter.add("hong",pl1);
panCenter.add("lan",pl2);
//注册监听
btnOne.addActionListener(new MyActionEvent());
btnTwo.addActionListener(new MyActionEvent());
}
//内部监听类
private class MyActionEvent implements ActionListener{
public void actionPerformed(ActionEvent ae){
if(ae.getActionCommand() == "One"){
cl.show(panCenter,"hong");
}
if(ae.getActionCommand() == "Two"){
cl.show(panCenter,"lan");
}
}
}
}
class Test {
public static void main(String[] args){
CardFrame cf= new CardFrame();
cf.setSize(200,300);
cf.setVisible(true);
}}