面向对象成绩录入窗口显示后,一直在屏幕中间和左上角闪动

面向对象成绩录入窗口显示后,一直在屏幕中间和左上角闪动

package saolei_program;

import javax.swing.*;

public class HeroesDialog extends JFrame {

public HeroesDialog() {
    this.setVisible(true);
    this.setSize(200, 200);
    this.setLocationRelativeTo(null);
    insertSort();

    String[] heroes = new String[GameUtil.heroesList.size()];
    for (int i = 0; i < GameUtil.heroesList.size(); i++) {
        heroes[i] = GameUtil.heroesList.get(i).getName()
                + "                                   "
                + GameUtil.heroesList.get(i).getTime();
    }

    JLabel label = new JLabel();
    label.setText("排行榜");
    JList list = new JList<>(heroes);
    JPanel panel = new JPanel();
    panel.add(label);
    panel.add(new JScrollPane(list));
    this.add(panel);
}

private void insertSort() {
    for (int i = 1; i < GameUtil.heroesList.size(); i++) {
        for (int j = i; j > 0; j--) {
            if (GameUtil.heroesList.get(j - 1).getTime() > GameUtil.heroesList.get(j).getTime()) {
                hero_get temp = GameUtil.heroesList.get(j - 1);
                GameUtil.heroesList.set(j - 1, GameUtil.heroesList.get(j));
                GameUtil.heroesList.set(j, temp);
            } else {
                break;
            }
        }
    }
}

}

package saolei_program;

import javax.swing.*;
import javax.swing.event.MouseInputAdapter;
import java.awt.event.MouseEvent;

public class victory extends JDialog {

public victory(long time) {
    this.setVisible(true);
    this.setSize(300, 200);
    this.setLocationRelativeTo(null);

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

    JLabel label1 = new JLabel("扫雷成功!共用时" + time + "s");
    JLabel label2 = new JLabel("敢问英雄大名是");
    label1.setBounds(40, 0, 150, 30);
    label2.setBounds(50, 30, 100, 30);
    panel.add(label1);
    panel.add(label2);

    JTextField textField = new JTextField();
    textField.setBounds(0, 60, 200, 30);
    panel.add(textField);

    JButton addBtn = new JButton("确定");
    addBtn.setBounds(60, 120, 70, 20);
    panel.add(addBtn);

    addBtn.addMouseListener(new MouseInputAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            if (e.getButton() == MouseEvent.BUTTON1) {
                dispose();
                String name = textField.getText();
                hero_get hero = new hero_get(name,time);
                GameUtil.heroesList.add(hero);
                new HeroesDialog();
            }
        }
    });
    this.add(panel);
}

}

package saolei_program;

import java.io.Serializable;
public class hero_get implements Serializable {

private String name = "";
private long time = 0;

public hero_get(String name, long time) {
    this.name = name;
    this.time = time;
}

public String getName() {
    return name;
}

public long getTime() {
    return time;
}

}
我估计是面板位置显示的问题,但是怎么也找不出来问题,程序也不报错

程序上应该是没有问题的😅,没看到错😅