【问题标题】:Jpanel.add(Jpanel) is not responding?Jpanel.add(Jpanel) 没有响应?
【发布时间】:2013-05-22 09:28:59
【问题描述】:

好的,我会尽量说清楚。

我的 FrIndex 具有如下布局。

当我创建一个单击第一个按钮的事件时,红色面板将被移除并替换为我在同一包中拥有的另一个面板。

这是我的代码。

void CallMocChiaKhoa() {
    pnMocChiaKhoa p = new pnMocChiaKhoa();
    pnMain.removeAll();
    pnMain.add(p);
    pnMain.validate();        
}

通常这段代码可以正常工作..我以前用另一个类似的项目这样做过。

谁能帮忙?

【问题讨论】:

  • 我认为你应该添加 java 标签。这会让你的问题得到更多关注。
  • 我猜这是秋千?你可以分享你附加监听器的代码吗?您粘贴的代码可能意味着任何东西..
  • @rethab 是的,这是 Swing,我使用的是 netbean 7.3,不知何故,它为我的项目添加了另一个 swingswing 布局扩展......我的另一个项目没有它,它是否因为这个额外的扩展而有所不同?
  • @zBaoAnhLe 这取决于您的扩展对您的项目所做的事情。请尝试制作:sscce.org
  • 您可能错过了对 repaint() 的调用;

标签: java swing applet awt jpanel


【解决方案1】:

您可以为此使用CardPanel,正如example 中所建议的那样。每个按钮的ActionListener 都需要知道它对应show() 的卡片的name。该名称可以存储在一个字段中,如here 所示,或者使用setName() 存储在相应的面板本身中。

【讨论】:

    【解决方案2】:

    是的,我想通了...您只需要再添加一行:

    pnMain.setLayout(new BorderLayout());
    pnMain.removeAll();
    

    而且效果很好...感谢各位的帮助! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-09
      • 2014-03-25
      • 2012-10-23
      • 2023-03-27
      • 2012-07-14
      • 1970-01-01
      • 2011-05-11
      相关资源
      最近更新 更多