JavaSwing:JTabed用于将新组件放入选项卡

JavaSwing:JTabed用于将新组件放入选项卡,java,swing,Java,Swing,我正在开发Swing应用程序。我为新的日志进程创建了新选项卡。打印其中的所有控制台语句。当我在tab组件中放置tab时,它会得到不匹配的pro1 hold log2 pro2 hold log1,所以我挖掘了很多,但并没有弄清楚代码是如何遵循的 调用CreateNew选项卡方法的ProjectExecute事件 if (e.getSource() == btnExecute) { createTab(); String s = new String

我正在开发Swing应用程序。我为新的日志进程创建了新选项卡。打印其中的所有控制台语句。当我在tab组件中放置tab时,它会得到不匹配的pro1 hold log2 pro2 hold log1,所以我挖掘了很多,但并没有弄清楚代码是如何遵循的

调用CreateNew选项卡方法的ProjectExecute事件

if (e.getSource() == btnExecute) {
            createTab();
            String s = new StringBuffer().append(ProjectOutPath).toString();
            dirr = new File(s);
            if (!dirr.exists()) {
            }
            final File tagFile = new File(dirr, projectName + ".log");

            if (!tagFile.exists()) {
                try {
                    tagFile.createNewFile();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
            SwingWorker<Boolean, Integer> worker = new SwingWorker<Boolean, Integer>() {
                @SuppressWarnings({ "unchecked", "null" })
                @Override
                protected Boolean doInBackground() throws Exception {
                    PrintStream printStream = new PrintStream(new CustomOutputStream(logTextArea, tempArea));
                    System.setOut(printStream);
                    System.setErr(printStream);
                    File outFile = new File(tagFile.getAbsolutePath());
                    FileOutputStream outFileStream = new FileOutputStream(outFile);
                    PrintWriter outStream = new PrintWriter(outFileStream);
                    try {
                        System.out.println("ChooserFile 1 :" + chooserFile1);

                        MainApp.runApp(chooserFile1);
                        chooserFile1 = new StringBuilder().append(chooserFile1).append("/raw_data").toString();
                        outStream.write(logTextArea.getText());
                        System.out.flush();
                        Runtime.getRuntime().exec("clear");
                        outStream.close();
                        printStream.close();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                    Thread.sleep(1000);
                    return true;
                }

                protected void done() {

                    try {

                        Component c[] = panel_tree.getComponents();
                        panel_tree.remove(c.length - 1);
                        panel_tree.add(ExomDataGUI.getTreeUpdate());
                        panel_tree.revalidate();
                        panel_tree.repaint();
                        scrollPane.getViewport().setView(ExomDataGUI.panel_tree);

                    } catch (Exception e) {
                        System.out.println("Exception Occured....!");
                    }
                }

                @Override
                protected void process(List<Integer> chunks) {
                    int mostRecentValue = chunks.get(chunks.size() - 1);
                    countLabel.setText(Integer.toString(mostRecentValue));
                }
            };
            worker.execute();
        } else {
        }
    }
private static JScrollPane createScroll() {
        System.out.println("Creatre Scrollpane Method Called....");
        JTextArea ja = new JTextArea();
        String S = logTextArea.getText();
        ja.setText(S);
        JScrollPane JScrolling = new JScrollPane(ja);
        logTextArea.setText(null);
        return JScrolling;
    }

    public static void createTab() {
        JLabel lblTitle;
        if (flag == 1) {
            //System.out.println("************Inside If Flag ***********");
            tabbedPane1.add("", new JScrollPane(logTextArea));
            Demo.add(tabbedPane1);
            JTextArea JTA = new JTextArea();
            String log = logTextArea.getText();
            JTA.setText(log);
            logTextArea.setText(null);
            lblTitle= new JLabel(projectName);
            flag = 0;
        } else {
        //  System.out.println("+++++++++++++++++++Inside If Flag +++++++++++");
            JScrollPane JSP = createScroll();
            tabbedPane1.add("here", JSP);
            lblTitle= new JLabel(projectName);
        }

        JPanel pnlTab = new JPanel();
        pnlTab.setOpaque(false);
        //JLabel lblTitle = new JLabel();
        JButton btnClose = new JButton();
        btnClose.setOpaque(false);
        btnClose.setRolloverIcon(CLOSE_TAB_ICON);
        btnClose.setRolloverEnabled(true);
        btnClose.setIcon(CLOSE_TAB_ICON);
        btnClose.setBorder(null);
        btnClose.setFocusable(false);
        pnlTab.setForeground(Color.white);
        pnlTab.setBackground(Color.white);
        pnlTab.add(lblTitle);
        pnlTab.add(btnClose);
        pnlTab.setForeground(Color.white);

        tabbedPane1.setTabComponentAt(tabbedPane1.getTabCount() - 1, pnlTab);
        Demo.add(tabbedPane1);
        ActionListener listener = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int response = JOptionPane.showConfirmDialog(null, "Do You Want To Close Tab ?");
                if (response == 0)
                    tabbedPane1.remove(tabbedPane1.getSelectedComponent());
                tabIndex--;
            }
        };
        btnClose.addActionListener(listener);
    }