-4

我在 ClassA 中有一个 getPercentage() 方法,它位于其他一些 java 文件中,我想更新另一个 java 文件中 ClassB 中的进度条。

4

1 回答 1

1

它很容易。

请参阅下面的完整示例

A级

import java.awt.EventQueue;

public class ClassA {

    private JFrame frame;
    private JProgressBar progressBar;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ClassA window = new ClassA();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public ClassA() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        progressBar = new JProgressBar();
        progressBar.setStringPainted(true);
        progressBar.setBounds(10, 89, 291, 34);
        frame.getContentPane().add(progressBar);
        frame.setVisible(true);
    }

    public void updateProgressBar(int value) {
        progressBar.setValue(value);
    }
}

B类

import java.awt.EventQueue;

public class ClassB {

    private JFrame frame;
    private static int i = 0;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ClassB window = new ClassB();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public ClassB() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        final ClassA a = new ClassA();

        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        JButton btnUpdate = new JButton("Update Value");
        btnUpdate.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                i = i + 10;
                a.updateProgressBar(i);
            }
        });
        btnUpdate.setBounds(10, 52, 109, 23);
        frame.getContentPane().add(btnUpdate);
    }
}

现在运行 B 类并更新其他屏幕上的百分比条。

于 2013-06-18T15:33:03.710 回答