JAVA JFrame切换JPanel
p1,p2两个JPanelp1里有个变量i,当i==1时,JFrame就会切换为p2显示请问如何实现,谢谢!p1有线程,i是无时无刻都随着线程变化...
p1,p2 两个JPanel
p1里有个变量i,当i==1时,JFrame就会切换为p2显示
请问如何实现,谢谢!
p1 有线程, i是无时无刻都随着线程变化 展开
p1里有个变量i,当i==1时,JFrame就会切换为p2显示
请问如何实现,谢谢!
p1 有线程, i是无时无刻都随着线程变化 展开
3个回答
展开全部
声明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,如果没有返回的必要,就不用传了。
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,如果没有返回的必要,就不用传了。
展开全部
你可以先把p2.setVisible(false).if(i===1){
p1.setVisible(false);
p2.setVisible(true);
}
p1.setVisible(false);
p2.setVisible(true);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在线程中判断 if(xxx){
JFrame.removeAll;
JFrame.repaint();
JFrame.add(JPanel);
}
JFrame.removeAll;
JFrame.repaint();
JFrame.add(JPanel);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询