QA@IT

メニューバーの、メニューアイテムから、押した回数だけ、addtab する。

1943 PV

こんばんは。
武居 紘史 です。
次のコードで、

コード
    int count = 0;
    JPanel panel = new JPanel();
    JTabbedPane tabpane ;//= new JTabbedPane[20];
    JPanel addpanel[] = new JPanel[20]; 
    int i = 0;
    public void changelistener()
    {
                count++;
                System.out.println("couunt = " + count);
                tabpane = new JTabbedPane();
                //tabpane.addChangeListener(this);
                tabpane.setBounds(0,0,500,500);
                String count_s = String.valueOf(count);

                for (i = 1; i < count; i++) 
                {
                    //count++;
                    System.out.println(i);
                    //tabpane.addTab(null, new JButton("title1"));
                    tabpane.addTab(null, new JLabel("Tab " + i));

                    tabpane.setTabComponentAt(i, new JLabel("Tab " + i, UIManager.getIcon("FileView.fileIcon"), JLabel.TRAILING));
                                        /* ここに、addtabで、メニューアイテムで、追加を押した分だけ、増やす。
                                        * また、このコードでは、2つまでしか、作れない。
                                        * 作れても、選択できない。
                                        */

                    //tabpane.set
                    //System.out.println("ret = " + ret);
                    //changelistener();

                }
                panel.add(tabpane);
    }
    public MainActivity()
    {
        panel.setLayout(null);
        show("ようこそ2。");
        JMenuBar bar = new JMenuBar();

        JMenu menu = new JMenu("タブ");
        JMenuItem item = new JMenuItem("追加");
        item.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                    changelistener();   
            }
        });
        menu.add(item);

        bar.add(menu);

        setJMenuBar(bar);

        JTabbedPane pane11 = new JTabbedPane();
        pane11.addTab(null, new JLabel("welcome"));
        panel.setBounds(0,0,400,400);
        panel.add(pane11);

        getContentPane().add(panel);
    }

となっていますが、どうしても、増やすものの、選択(選べない)できなかったり、2つまでしか作れません。
menu bar の menu item を、押した分だけ、表示するには、正しい方法は、ないのでしょうか?
よろしくお願い致します。

回答

コード

    public void changelistener()
    {
        count = count + 1;
        System.out.println(count);
        for(i=0;i<=5; i++)
        {
                tabpane.addTab("Tab", new JLabel("ようこそ。"));
                tabpane.setTabComponentAt(i, new JLabel("Tab " + i, UIManager.getIcon("FileView.fileIcon"), JLabel.TRAILING));
                System.out.println("スタート。 : " + i);
                panel.setLayout(null);
                panel.add(tabpane);
                validate();
        }
        getContentPane().add(panel);
    }

と、してやると、動きました。
では。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。