【问题标题】:How do I remove this JPanel from my JFrame? [duplicate]如何从我的 JFrame 中删除此 JPanel? [复制]
【发布时间】:2015-03-24 04:58:54
【问题描述】:

我会将其简化为我的程序中与问题实际相关的内容。

在一堂课上我有这个:

private void frame1(){

JFrame Introframe = new JFrame();
Introframe.add(new IntroText());

Introframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Introframe.setLocation(600,100);
Introframe.pack();
Introframe.setVisible(true);

}

在另一个班级我有这个

public class IntroText extends JPanel {

IntroText(){

setPreferredSize(new Dimension(480, 800));

}

所以我将 IntroText 类中的 JPanel 添加到我的 JFrame 中。但是我该如何删除它?!??!我可以使用 removeAll 删除所有组件,但如果我不想删除所有组件怎么办?感谢您的帮助。

【问题讨论】:

  • 变量guy是什么?
  • 哎呀,对不起,那不应该在那里,那是我乱来的。
  • 使用 CardLayout 来帮助您交换组件。
  • 我会检查一下,不过如果有一个简单的方法来做到这一点就更好了。
  • @TravisBlack: CardLayout 最简单的方法。

标签: java swing


【解决方案1】:

尝试从其父级中删除JPanel

Introframe.remove(introtext) // where introtext is an instance of IntroText

虽然你不会一添加就删除它,但这里有一个例子:

private void frame1(){

JFrame Introframe = new JFrame();
IntroText introtext = new IntroText(); // your panel
Introframe.add(introtext); // add panel

Introframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Introframe.setLocation(600,100);
Introframe.pack();
Introframe.setVisible(true);

Introframe.remove(introtext); // remove it now

}

【讨论】:

  • 如果我做 Introframe.remove(IntroText());然后它说“找不到符号:方法 IntroText()”。
  • 哦,谢谢! :D
  • 随时特拉维斯。如果您还需要什么,请告诉我。
猜你喜欢
  • 2011-01-30
  • 1970-01-01
  • 1970-01-01
  • 2011-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多