JLabel не виден в начале - PullRequest
       8

JLabel не виден в начале

0 голосов
/ 30 октября 2018

Я хочу иметь JFrame с JLabel, который отображает текущий статус. К сожалению, JLabel не видна с самого начала.

public class publishStatus extends JFrame{
JLabel JL;
int uploads = 0;
public publishStatus() {
    JL = new JLabel (uploads +" Upload");
    getContentPane().setLayout(new FlowLayout());
    getContentPane().add(JL);

    setSize(300,200);
    setLocation(800,400);
    setVisible(true);
}

public void refresh() {
    uploads++;
    JL.setText(uploads +" Upload");

}

public static void main(String[] args) throws HeadlessException, Exception {
    publishStatus f = new publishStatus();
    System.setProperty("webdriver.gecko.driver", "geckodriver");
    WebDriver driver = new FirefoxDriver();
    WebDriverWait wait = new WebDriverWait(driver, 20);
f.refresh();

}}

Итак, мне нравится то, что фрейм появляется с «0 Upload», а затем меняется на «1 Upload», как только драйвер загружается. Заранее спасибо!

1 Ответ

0 голосов
/ 30 октября 2018

Проблема в том, что вы обновляете содержимое JLabel после запуска приложения. Так что вы не можете видеть в это время, пока обновляется JLabel.

f.refresh (); - обновить счетчик загрузки и установить последнее значение для JLabel.

У вас может быть кнопка «Обновить», и вы можете прикрепить к ней действие обновления. Чтобы каждый раз, когда вы нажимали кнопку «Обновить», вы видели, что ваш JLabel обновляется.

Вот модифицированный код:

public class PublishStatus extends JFrame{
    JLabel JL;
    int uploads = 0;
    public PublishStatus() {
        JL = new JLabel (uploads +" Upload");
        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(JL);

        JButton button = new JButton("Refresh");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                uploads++;
                JL.setText(uploads +" Upload");
            }
        });

        getContentPane().add(button);

        setSize(300,200);
        setLocation(800,400);
        setVisible(true);
    }

    public static void main(String[] args) throws HeadlessException, Exception {
        PublishStatus f = new PublishStatus();
    }
}
...