Java 在actionPerformed中打开JProgressbar

Java 在actionPerformed中打开JProgressbar,java,swing,jframe,jprogressbar,Java,Swing,Jframe,Jprogressbar,我正在尝试在actionPerfomed中执行ProgressBar(我有一个界面,带有一个浏览文件夹的按钮和一个运行按钮)。目标是在按下run按钮后启动progressbar,但当窗口出现时,它全部为空 我使用以下代码启动带有浏览和运行按钮的窗口: final JFrame frame_project = new JFrame("PROJECT 22"); final JPanel panel = new JPanel(); frame_project.setSize(400,

我正在尝试在actionPerfomed中执行ProgressBar(我有一个界面,带有一个浏览文件夹的按钮和一个运行按钮)。目标是在按下run按钮后启动progressbar,但当窗口出现时,它全部为空

我使用以下代码启动带有浏览和运行按钮的窗口:

final JFrame frame_project = new JFrame("PROJECT 22");
    final JPanel panel = new JPanel();
    frame_project.setSize(400,250);
    frame_project.add(panel);
    panel.setLayout(null);

    JButton button2 = new JButton("Browse");
    button2.setBounds(30, 30, 90, 25);
    panel.add(button2);

    final JButton buttonStartCompare = new JButton();
    buttonStartCompare.setText("RUN");
    buttonStartCompare.setBounds(100, 80, w/2, h/2);
    panel.add(buttonStartCompare);
    frame_project.setVisible(true);
然后,在执行的操作中,我有以下内容:

    buttonStartCompare.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            JProgressBar it = new JProgressBar();
             frame_project.setVisible(false);
             JFrame frame = new JFrame("Progress Bar");
             JPanel panel = new JPanel();
             frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             panel.add(it);
             frame.setContentPane(it);
             frame.pack();
             frame.setSize(250,100);
             frame.add(panel);
             frame.setVisible(true);
}
}
编辑:

这是在Oracle中看到的完整代码。第一个“ProgressMonitorDemo.createAndShowGUI();”正常第二个不正常:

final JButton Button_Run = new JButton();
    Button_Run.setText("RUN");
    Button_Run.setBounds(140, 80, 100, 100);
    panel.add(Button_Run);

    ProgressMonitorDemo.createAndShowGUI();

    Button_Run.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {

            Button_Run.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

            if(fieldSheetsDirectory.getText().isEmpty()){
                JFrame frame_missing = PanelUtils.getErrorPanel("Please select the files ");
                Button_Run.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
                frame_missing.setVisible(true);
                return;
            }

            final String path = fieldSheetsDirectory.getText();

            fieldPathRapport.setText("\\Rapport.xlsx");
            fieldPathOriginal.setText("\\Original.xlsx");
            fieldPathCartoo.setText("\\MyCarto draft V2.xlsx");

            long lStartTime_open = System.currentTimeMillis();

            String path_Raportt = path.concat(fieldPathRapport.getText());
            String path_Original = path.concat(fieldPathOriginal.getText());
            String path_MyCartoo = path.concat(fieldPathCartoo.getText());

            System.out.println(path);
            System.out.println("");

            XSSFWorkbook OriginalBook = FileUtils.OpenFile(path_Original);
            XSSFWorkbook RapportBook = FileUtils.OpenFile(path_Raportt);
            XSSFWorkbook MyCartoBook = FileUtils.OpenFile(path_MyCartoo);

            if(OriginalBook == null || RapportBook == null || MyCartoBook == null){
                return;
            } else {
                frame.setVisible(false);
            }



            //JFrame frame_sucess = PanelUtils.getFinalErrorPanel("Running...");
            //frame_sucess.setVisible(true);
            ProgressMonitorDemo.createAndShowGUI();

您的代码中没有对JProgresbar的引用?你只有一个标题为“进度条”的JFrame。什么是SwingProgressBare示例?你有一个进度条、框架和一个面板,将进度条添加到面板中,将进度条设置为框架的内容窗格,然后将面板添加到框架中?是否将面板添加到进度条中?现在,最重要的是什么?SwingProgressBare示例基本上是启动ProgressBar(我已经编辑了以便于理解)@JamesWierzba面板只是一个测试。我猜这在节目里什么都没做。。。第一个代码在上面@FerdinandNeman我的问题是,如果我在执行操作之前放置相同的代码,那么一切都正常。但是,当我将动作performed放入其中时,只会显示框架。请阅读Swing教程中的部分,以获取工作示例。