java - 如何切换两个java jpanels的内容

标签 java swing jpanel

我想切换 jpanels 的内容。假设我有 jpanel1 和 jpanel2,我想将 jpanel1 的内容更改为 jpanel2,并将 jpanel2 的内容更改为 jpanel1。这些面板具有完全不同的内容。所以我无法更改 jpanel 的属性并且所有元素都改为切换。此图像用于澄清 enter image description here

void switchPanels (){
Content c1=jPanel1.getContent();
jPanel1.setContent(jPanel2.getContent());
jPanel2.setContent(c1);
}

我知道上面的代码不起作用。我想知道如何实现它。

最佳答案

我不会添加 2 个面板并切换它们的内容,而是将它们放在另一个带有 BorderLayout (CENTER) 的容器 JPanel 中。要交换它们,只需从 container1 中移除第一个面板并添加到 container2。

JPanel container1=new JPanel();
container1.setLayout(new BorderLayout());
container1.add(thepanel1);
JPanel container2=new JPanel();
container2.setLayout(new BorderLayout());
container2.add(thepanel2);

public void swap() {
  container2.add(thepanel1);
  container1.add(thepanel2);
  revalidate();
  repaint();
}

关于java - 如何切换两个java jpanels的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25265386/

相关文章:

java - 限制 GWT 中的小数位数?

java - 如何将 ZonedDateTime 格式设置为 yyyy-MM-ddZ

java - JPanels 在重叠期间闪烁

java - 将我的所有 JComponent 转换为 AWT 组件是否值得?

java - Eclipse 符合 "Unresolved generator name"但一切正常

Java:获取 List<List<String>> 的所有串联

java - 阻止新创建的对话框获得焦点

java - pack() 之后 JFrame 的大小为奇数

java - 使用 GridBagLayout 设置 JScrollPane 中 JList 的宽度

java - 了解如何创建形状