java - TabbedPane 更改选项卡内的面板

标签 java swing user-interface layout-manager jtabbedpane

我正在一个名为“仪表板”的类中创建一个选项卡疼痛,该类在选项卡中包含“填充”面板。我想知道是否有办法创建新的仪表板并更改我存储在选项卡中的面板。我不确定这是否是解释它的正确方法,但这里有一些代码。

public class Dashboard{

    public Dashboard(){
         tabPane = new JTabbedPane();
     panel1 = new JPanel();
         panel2 = new JPanel();
         panel3 = new JPanel();
     panel1.add(new JLabel("This is the first panel"));
         panel2.add(new JLabel("This is the second panel"));
         panel3.add(new JLable("This is the third panel"));
         tabPane.add("One", panel1);
         tabPane.add("Two", panel2);
         tabPane.add("Three", panel3);
    }

我现在想要创建一个新类来创建仪表板实例,但更改选项卡中显示的面板。我正在尝试这样的事情:

  public class Changer{
      public Changer(){
         Dashboard d = new Dashboard();
         // assuming I have getters and setters in the above class and that the 
         // panels are fields in Dashboard
         JPanel new = new JPanel();
         d.setPanel1(new);
      }
  }

我不确定这是否可行,或者是否有其他方法可以做到这一点。

最佳答案

获取标签索引

int index = tabPane.indexOfTab("One");

设置指定索引处的组件

tabPane.setComponentAt(index, new Dashboard());

关于java - TabbedPane 更改选项卡内的面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19149337/

相关文章:

c++ - 如何使用 Qt/C++ 创建/读取/写入文件并将设置存储在程序本地

java - 检测 JSpinner 何时达到最大限制?

java - 如何使用 cucumber-junit 设置 Cucumber 功能的路径?

java - 如何在 odata4j 中按日期范围过滤实体?

java - 如何在主java中调用Keypress函数

java - CardLayout 交换面板

java - 我的 JPanel 中的 GridBagLayout 不起作用

java - 什么是多平台环境的更好选择

java - GlassPane 不会显示应用于它的背景图像

java - 带有选择器的 FrameLayout 前景