JAVA JFrame切换JPanel

p1,p2两个JPanelp1里有个变量i,当i==1时,JFrame就会切换为p2显示请问如何实现,谢谢!p1有线程,i是无时无刻都随着线程变化... p1,p2 两个JPanel
p1里有个变量i,当i==1时,JFrame就会切换为p2显示

请问如何实现,谢谢!
p1 有线程, i是无时无刻都随着线程变化
展开
 我来答
j2eewithssh1
2012-08-21 · TA获得超过107个赞
知道答主
回答量:9
采纳率:0%
帮助的人:11.6万
展开全部
声明3个JPanel:p1,p2,p3
public class P3 extends JPanel
{
private JPanel p1;
private JPanle p2;
private CardLayout out;

public P3()
{
out = new CardLayout();
setLayout(out);
p1 = new P1(this);
p2 = new P2(this);

add("p1", p1);
add("p2", p2);
}

public void setCurrentPanel(String panelName)
{
out.show(this, panelName);
}

}

public class P1 extends JPanel implements Runnable
{
private P3 p3;
private int i = 0;

public P1(P3 p3)
{
this.p3 = p3;
}

public void run()
{
while (true)
{
if (i == 1)
{
p3.setCurrentPanel("p2");
}
}
}
}

p2的声明我就不写了哈,只是说明一种方法,往p2里面传p3的对象只是方便你返回到p1,如果没有返回的必要,就不用传了。
zjj03012854
2012-08-18
知道答主
回答量:18
采纳率:0%
帮助的人:8万
展开全部
你可以先把p2.setVisible(false).if(i===1){
p1.setVisible(false);
p2.setVisible(true);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
守护末世
2012-08-18
知道答主
回答量:9
采纳率:0%
帮助的人:8.6万
展开全部
在线程中判断 if(xxx){
JFrame.removeAll;

JFrame.repaint();

JFrame.add(JPanel);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式