user1731255
user1731255

Reputation: 31

adding new jpanel with default components in swing

can any one tell me how to add a panel in a jtabbedPane whenever i am clicking on a "add" button.Its like google chrome new tab.But the thing is ,the generated panel must contains some default components.Thanks in advance.

Upvotes: 2

Views: 758

Answers (1)

Dan D.
Dan D.

Reputation: 32391

Please see the code below. It shows you how to do what you need.

public class DemoApp {
    private JTabbedPane tabPane = new JTabbedPane();

    public DemoApp() {
        initComponents();
    }

    private void initComponents() {
        JFrame frame = new JFrame("Test");
        frame.setSize(500, 400);
        frame.setLocationRelativeTo(null);

        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        frame.getContentPane().add(panel);

        JButton btn = new JButton("Add panel");
        btn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                int index = tabPane.getTabCount() + 1;
                JPanel newPanel = new JPanel();
                newPanel.setLayout(new FlowLayout());
                newPanel.add(new JLabel("Panel " + index));
                tabPane.addTab("Tab " + index, newPanel);
            }
        });
        panel.add(tabPane, BorderLayout.CENTER);
        panel.add(btn, BorderLayout.SOUTH);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        new DemoApp();
    }
}

Upvotes: 1

Related Questions