双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

java 卡片布局管理器的一点小问题

albertwmm albertwmm 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区


import java.awt.*;
import java.awt.event.*;
public class CardLayoutDemo extends Frame implements MouseListener{

private Button first=new Button("A");
private Button second=new Button("B");
private Button third=new Button("C");
private CardLayout cl=new CardLayout();
private Panel cards=new Panel();

public CardLayoutDemo(String string){
super(string);
init(); //调用init方法
}

public void init(){
setLayout(new BorderLayout());
setSize(500, 500);

Panel p=new Panel();
p.setLayout(new FlowLayout());

first.addMouseListener(this);
second.addMouseListener(this);
third.addMouseListener(this);

p.add(first);
p.add(second);
p.add(third);

add("North",p);
cards.setLayout(cl);
cards.add("First cards",new Button("AA"));
cards.add("second Button",new Button("BB"));
cards.add("third cards",new Button("CC"));
add("Center",cards);

addWindowListener(new WindowAdapter(){
public void WindowClosing(WindowEvent evt){
setVisible(false);
dispose();
System.exit(0);
}
});

setVisible(true);
}

public static void main(String[] args) {
new CardLayoutDemo("ABCD"); //创建CardLayoutDemo类型变量

}

public void mouseClicked(MouseEvent evt){
if(evt.getSource()==first){
cl.first(cards);
}
else if(evt.getSource()==second){
cl.first(cards);
cl.next(cards);
}
else if(evt.getSource()==third){
cl.last(cards);
}
}
public void mouseEntered(MouseEvent arg0){
}
public void mouseExited(MouseEvent arg0){
}
public void mousePressed(MouseEvent arg0){
}
public void mouseReleased(MouseEvent arg0){
}

}





有些地方一直搞不懂,请老手教下新手

1.前面学了其他的布局管理器。 都没看到 实例化布局管理器。这里有private CardLayout cl=new CardLayout(); 为什么要对布局器实例化对象呢?有什么用意吗?

2.init方法中 设置窗口布局和大小的时候 不需要先对Frame窗口实例化再调用吗? 为什么可以直接这样写?

3.在main中 为什么不需要设置对象啊?

4.为什么要在构造方法中调用init方法啊?

5.在cards中添加按钮 为什么需要些"first Button" 。为什么要写这个?能不写或随便写吗?
...全文

相关推荐

评论 11
收藏 已收藏
分享
返回顶部
albertwmm
Java SE 62,621 成员 307,251 内容