java卡片布局
我建立了三个卡片,每个卡片有一个按钮组件,当我再往第一张卡片加入按钮的时候,会显示不出来,只能显示原来加的那一个按钮,这是怎么回事?往第二第三张加的时候就没有这种情况...
我建立了三个卡片,每个卡片有一个按钮组件,当我再往第一张卡片加入按钮的时候,会显示不出来,只能显示原来加的那一个按钮,这是怎么回事?往第二第三张加的时候就没有这种情况
展开
4个回答
展开全部
我看了你的程序,帮你改完了,你看看吧。
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.CardLayout;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class NewCardLayout {
public static void main (String[] args){
Frame f = new Frame ("example");
final Panel p=new Panel();
final CardLayout cl=new CardLayout();
p.setLayout(cl);
Panel p1=new Panel();
p1.setLayout(new BorderLayout());
Panel p2=new Panel();
p2.setLayout(new BorderLayout());
Button b1=new Button("one");
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
cl.show(p,"card2");
}
});
p1.add(b1,BorderLayout.CENTER);
Button b2=new Button("two");
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
cl.show(p,"card1");
}
});
p2.add(b2,BorderLayout.CENTER);
p.add(p1, "card1");
p.add(p2, "card2");
f.add(p);
f.setBounds(100,100,250,250);
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}});
}
}
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.CardLayout;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class NewCardLayout {
public static void main (String[] args){
Frame f = new Frame ("example");
final Panel p=new Panel();
final CardLayout cl=new CardLayout();
p.setLayout(cl);
Panel p1=new Panel();
p1.setLayout(new BorderLayout());
Panel p2=new Panel();
p2.setLayout(new BorderLayout());
Button b1=new Button("one");
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
cl.show(p,"card2");
}
});
p1.add(b1,BorderLayout.CENTER);
Button b2=new Button("two");
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
cl.show(p,"card1");
}
});
p2.add(b2,BorderLayout.CENTER);
p.add(p1, "card1");
p.add(p2, "card2");
f.add(p);
f.setBounds(100,100,250,250);
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}});
}
}
展开全部
因为你没有刷新界面。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有没有你写的代码 ,这样改的话快一点!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你也可以把面板的布局设置位空布局setLayout(null);然后在设置里面组建的位子大小也就是setBounds();最后添加上去!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询