在java中选择列表项时,如何向JTabbedPane添加新选项卡

在java中选择列表项时,如何向JTabbedPane添加新选项卡,java,swing,netbeans,Java,Swing,Netbeans,我正在做一个“人力资源管理”项目。 在我的项目中,我基本上使用JSplitPane水平划分了主屏幕。 JSplitPane的第二部分进一步垂直分割,其中一侧由JList组成,另一侧为JTabbedPane。 我想将事件侦听器添加到列表中,以便无论何时从JSplitPane的左侧选择列表项,都应该在JSplitPane的右侧打开一个新选项卡。我怎样才能做到这一点 代码: 截图: 您已经差不多完成了(?)。只需将其更改为paneForTasks.addTab(“addemployee”,即要添加的组

我正在做一个“人力资源管理”项目。 在我的项目中,我基本上使用
JSplitPane
水平划分了主屏幕。
JSplitPane
的第二部分进一步垂直分割,其中一侧由
JList
组成,另一侧为
JTabbedPane
。 我想将事件侦听器添加到列表中,以便无论何时从
JSplitPane
的左侧选择列表项,都应该在
JSplitPane
的右侧打开一个新选项卡。我怎样才能做到这一点

代码:

截图:


您已经差不多完成了(?)。只需将其更改为
paneForTasks.addTab(“addemployee”,即要添加的组件)
并可能在前面添加此if语句:
如果(!e.getValueIsAdjusting())
<则如果选择实际发生更改,则只会显示一个新选项卡。请确保重新验证选项卡窗格的父级。请参阅,以了解我不再费心解决的问题。感谢您的回复。你能解释一下e.getValueIsAdjusting指定了什么吗?我在网上查了一下,但不明白。
import java.awt.*;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.event.*;

public class MainPage extends JFrame implements ListSelectionListener {
    JSplitPane mainPane;
    JSplitPane subPane;
    JList listOfTasks;
    JTabbedPane paneForTasks;

    String options[] = { "Add a new employee", "Attendance", "Payroll" };

    public MainPage() {
        setLayout(new GridLayout());

        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setBounds(0, 0, screenSize.width, screenSize.height);
        setVisible(true);

        listOfTasks = new JList(options);
        listOfTasks.addListSelectionListener(this);
        paneForTasks = new JTabbedPane();
        subPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, listOfTasks, paneForTasks);
        mainPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, labelLogo, subPane);
        add(mainPane);
    }

    public void valueChanged(ListSelectionEvent e) {

        paneForTasks.addTab("Add Employee");
    }

    public static void main(String args[]) {
        MainPage obj = new MainPage();
        obj.setVisible(true);
    }

}