JAVA JFrame切换JPanel
答案:3 悬赏:0 手机版
解决时间 2021-12-01 17:06
- 提问者网友:爱唱彩虹
- 2021-12-01 03:47
JAVA JFrame切换JPanel
最佳答案
- 五星知识达人网友:玩世
- 2021-12-01 05:08
声明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,如果没有返回的必要,就不用传了。
全部回答
- 1楼网友:千夜
- 2021-12-01 06:55
你可以先把p2.setVisible(false).if(i===1){
p1.setVisible(false);
p2.setVisible(true);
}
p1.setVisible(false);
p2.setVisible(true);
}
- 2楼网友:鱼芗
- 2021-12-01 05:52
在线程中判断 if(xxx){
JFrame.removeAll;
JFrame.repaint();
JFrame.add(JPanel);
}
JFrame.removeAll;
JFrame.repaint();
JFrame.add(JPanel);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯