面向对象成绩录入窗口显示后,一直在屏幕中间和左上角闪动
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;
}
}
我估计是面板位置显示的问题,但是怎么也找不出来问题,程序也不报错
程序上应该是没有问题的😅,没看到错😅