永发信息网

JAVA 中的CardLayout的显示问题

答案:3  悬赏:0  手机版
解决时间 2021-11-19 23:19
JAVA 中的CardLayout的显示问题
最佳答案
必然不行,因为JFrame有一个默认的container,JFrame是没有同位体的。
必须得到JFrame的container,可以用.getContentPane()方法来获得,也可以用.setContentPane(Container)来设置。
修改的代码如下:
import java.awt.*;
import javax.swing.*;
public class BaiduTest{
static JFrame frm = new JFrame("hello-card-center");
public static void main(String args[]){
CardLayout card = new CardLayout(5,10);
frm.setLayout(card);
frm.setSize(200,150);
frm.add(new Button("Button1"),"c1");
frm.add(new Button("Button2"),"c2");
frm.add(new Button("Button3"),"c3");
card.show(frm.getContentPane(), "c2");//就这里改了
frm.setVisible(true);
}
}
全部回答
同意一楼的建议 必须使用.getContentPane()来得到JFrame的容器
import java.awt.CardLayout;
import javax.swing.*;
public class CenterPanel {
static JFrame frm = new JFrame("hello-card-center");

public static void main(String args[]) {
CardLayout card = new CardLayout(5, 10);
JPanel jp = new JPanel();
jp.setLayout(card);
frm.setSize(200, 150);
jp.add(new JButton("Button1"), "c1");
jp.add(new JButton("Button2"), "c2");
jp.add(new JButton("Button3"), "c3");
card.show(jp, "c2");
frm.add(jp);
frm.setVisible(true);
}
}

这是我修改后的代码,你参考一下。

1.Frame、Button是awt包里面的重量级组件而JFrame、JBtton、JPanel为swing包里面的轻量级组件。
2.重量级组件和轻量级组件不要混用,不然会出现错误。!!!!!!!
3.一般给JFrame(顶层容器)中放jpanel、JTabbedPane等,而将其他小组件(如jbutton)放在jpanel中,并给jpanel设置布局管理,如Cardlayout。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
轻卡4米2的大柴498和五十铃哪个转速更高,哪
求一首歌曲《和风》,小时候(我70年代生人)
我后背起了红色的疙瘩,很痒,,
工伤赔偿时究竟按月工资多少为标准计算?
AI怎么只选住一个路径点移动
观察作文400字
如何自己进行濒死体验?? 求回答
大家好,我想知道法魔怎么加点
5ml毫升等于多少克?
电加热暖宫腰带有害吗?暖宫腰带有辐射吗?
汽车4S店 综合部及综合部经理的工作职责明细
一私人老板包私人房建活,私人老板把木工活给
石斛叶的功效
用友T3结年度帐时建立是灰色的,如何解决
花间万花小橙武插什么五彩石
推荐资讯
甲数的3/5是乙数的5/6,乙数是12,甲
吹箫的“箫”字用英文怎么说?不是flute(笛子
尼康d3 cf卡选择问题
一味地遍贬低一个人说他一无是处,废物一个,
想按揭一辆前四后八7.2米翻斗车得多少钱
沈阳市浑南新区泰来十六区地址及邮编是什么急
清远市各乡镇赶集的时间
shinkoo闪酷是传销吗? 他们说想比特币
上天入地和胆色十足 的英文翻译
win7的系统不知道怎么安装。我是铭瑄的主板。
把磁带放在电脑里怎么放
奥 吧马会让普京付出什么代价?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?