首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Swing JFrame上添加/删除JFXPanel

在Swing JFrame上添加/删除JFXPanel
EN

Stack Overflow用户
提问于 2012-12-06 14:43:29
回答 1查看 1.4K关注 0票数 1

我想在JFrame容器上添加和删除JFXPanel,但无法这样做。我被困在这里,没有得到适当的解决方案的按钮点击,我想添加和删除的JFXPanel控件。

这段代码的错误在哪里?

代码语言:javascript
复制
  public class abc extends JFrame
  {
  JFXPanel fxpanel;
  Container cp;
  public abc()
  {
  cp=this.getContentPane();
  cp.setLayout(null);
  JButton b1= new JButton("Ok");
  JButton b2= new JButton("hide");
  cp.add(b1);
  cp.add(b2);
  b1.setBounds(20,50,50,50);
  b2.setBounds(70,50,50,50);
  b1.addActionListener(this);
  b2.addActionListener(this);
  fxpanel= new JFXPanel();
  cp.add(fxpanel);
  fxpanel.setBounds(600,200,400,500);
 }

  public void actionPerformed(ActionEvent ae)
 { 
 if(ae.getActionCommand().equals("OK"))
  {
    fxpanel= new JFXPanel();
    cp.add(fxpanel);
    fxpanel.setBounds(600,200,400,500);


   }
  if(ae.getActionCommand().equals("hide"))
   { 
    cp.remove(fxpanel);
    }
   }
    public static void main(String args[])
   {

      abc f1= new abc();
      f1.show();
    }
   }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-06 15:53:56

  • 不要扩展调用LayoutManager
  • why使用null/Absolute show()JFrame设置为可见?您应该使用setVisible(true)
  • Dont忘记应该通过Platform.runLater()

Event Dispatch Thread上通过SwingUtilities.invokeXXX创建和操作Swing组件和JavaFX组件

除了上面的问题之外,你最大的问题是在添加/删除组件后没有刷新GUI/容器,因此没有显示任何更改:

JFrame实例上调用revalidate()repaint(),以反映在可见容器中添加/移除组件后的更改。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13738294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档