Как заставить Jlabel корректно обновляться и отображаться? - PullRequest
0 голосов
/ 22 мая 2019

Я создал всплывающее окно JFrame, показывающее, сколько элементов завершило загрузку.Он работал нормально при запуске в notepad ++ (который запускает команду cmd с помощью плагина), но при использовании .bat для запуска его с cmd JFrame ничего не дает.

public class A extends B{

public static void main(String[ ] args) {
    a();
}

protected static void a(){
    //- Frame
    JFrame frame_loading = new JFrame("Loading");
    frame_loading.setSize(250, 100);
    frame_loading.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame_loading.setLayout(new BorderLayout());
    frame_loading.setLocationRelativeTo(null);      // Center in screen

    //- Text
    JLabel label_loading = new JLabel("        Loading... ");
    label_loading.setFont(new Font("Tahoma", 0, 15));
    frame_loading.add(label_loading, BorderLayout.WEST);

    //- Text
    JLabel label_number = new JLabel();
    label_number.setFont(new Font("Tahoma", 0, 15));
    frame_loading.add(label_number, BorderLayout.CENTER);

    frame_loading.setVisible(true);

    for(...){
        label_number.setText(Integer.toString(i + 1));
    }

  frame_loading.dispose();
  }
}

Это как-то работает долгонекоторое время назад в .bat cmd (работает один раз при запуске во второй раз), но я больше никогда не заставляю его работать, кроме как с помощью блокнота ++

Я устал добавлять ContentPane, JPanel, repaint, pack, но не повезло.

JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());

//- ContentPane
Container pane = frame_loading.getContentPane();
pane.setLayout(new BorderLayout());

frame_loading.add(panel);
frame_loading.pack();

Должно отображаться 'Loading ... (int)',

...