java 为什么我生成的窗体程序关闭了窗体仍在运行呢??
是从书上弄下来然后修改的publicclassSwingAndThreadextendsJFrame{....省略....publicSwingAndThread(){....
是从书上弄下来然后修改的
public class SwingAndThread extends JFrame {
....省略....
public SwingAndThread() {
...省略...
t = new Thread(new Runnable() { // 定义匿名内部类,该类实现Runnable接口
public void run() { // 重写run()方法
while (count <= 600) { // 设置循环条件
// 将标签的横坐标用变量表示
jl.setBounds(count, 10, 200, 100);
jl2.setBounds(count2, 150, 200,100);
jl3.setBounds(count3, 300, 200,100);
try {
Thread.sleep(500); // 使线程休眠1000毫秒
} catch (Exception e) {
e.printStackTrace();
}
int number = new Random().nextInt(30) + 1;
int number2 = new Random().nextInt(30) + 1;
int number3 = new Random().nextInt(30) + 1;
count += number; // 使横坐标每次增加4
count2 += number2;
count3 += number3;
if (count >= 600|count2 >= 600|count3 >= 600) {
// 当图标到达标签的最右边,使其回到标签最左边
if(count >= 600) JOptionPane.showMessageDialog(null, "猪赢了");
if(count2 >= 600) JOptionPane.showMessageDialog(null, "熊赢了");
if(count3 >= 600) JOptionPane.showMessageDialog(null, "人赢了");
count = 10;
count2 = 10;
count3 = 10;
}
}
}
});
t.start(); // 启动线程
container.add(jl); // 将标签添加到容器中
container.add(jl2);
container.add(jl3);
setVisible(true); // 使窗体可视
// 设置窗体的关闭方式
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new SwingAndThread(); // 实例化一个SwingAndThread对象
}
}
关闭了窗体线程仍在运行的意思 展开
public class SwingAndThread extends JFrame {
....省略....
public SwingAndThread() {
...省略...
t = new Thread(new Runnable() { // 定义匿名内部类,该类实现Runnable接口
public void run() { // 重写run()方法
while (count <= 600) { // 设置循环条件
// 将标签的横坐标用变量表示
jl.setBounds(count, 10, 200, 100);
jl2.setBounds(count2, 150, 200,100);
jl3.setBounds(count3, 300, 200,100);
try {
Thread.sleep(500); // 使线程休眠1000毫秒
} catch (Exception e) {
e.printStackTrace();
}
int number = new Random().nextInt(30) + 1;
int number2 = new Random().nextInt(30) + 1;
int number3 = new Random().nextInt(30) + 1;
count += number; // 使横坐标每次增加4
count2 += number2;
count3 += number3;
if (count >= 600|count2 >= 600|count3 >= 600) {
// 当图标到达标签的最右边,使其回到标签最左边
if(count >= 600) JOptionPane.showMessageDialog(null, "猪赢了");
if(count2 >= 600) JOptionPane.showMessageDialog(null, "熊赢了");
if(count3 >= 600) JOptionPane.showMessageDialog(null, "人赢了");
count = 10;
count2 = 10;
count3 = 10;
}
}
}
});
t.start(); // 启动线程
container.add(jl); // 将标签添加到容器中
container.add(jl2);
container.add(jl3);
setVisible(true); // 使窗体可视
// 设置窗体的关闭方式
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new SwingAndThread(); // 实例化一个SwingAndThread对象
}
}
关闭了窗体线程仍在运行的意思 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询