首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新加载JComponent

重新加载JComponent
EN

Stack Overflow用户
提问于 2017-03-29 03:43:06
回答 1查看 134关注 0票数 0

很像this.repaint(),但如果可能的话,实际上是在重建它。

EN

回答 1

Stack Overflow用户

发布于 2017-03-29 16:46:59

首先,您不应该直接在框架上添加JComponent,最好先在JFrame上添加JPanel,然后再在其上添加组件。

要替换JPanel上的组件,您可以使用以下函数。

代码语言:javascript
复制
jPanel.remove(comp);
or
jPanel.removeAll();

jPanel.add(comp);
jPanel.revalidate();
jpanel.repaint();

如果您只想使用JFrame,则在使用jf.setSize(x,y)替换用于刷新框架的组件后,需要稍微调整框架的大小。

代码语言:javascript
复制
import javax.swing.*;
import java.util.concurrent.*;
public class FrameReplaceComp {
  public static void main(String[] args) throws Exception {

    JFrame frame = new JFrame("Hello swing");
    final JLabel label = new JLabel("Label 1");
    frame.add(label);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 100);
    frame.setVisible(true);

    Thread.sleep(1000);

    final JLabel label1 = new JLabel("Label 2");
    frame.remove(label);
    frame.add(label1);
    frame.setSize(300,101);

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

https://stackoverflow.com/questions/43078493

复制
相关文章

相似问题

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