lc95921 2016-10-14 07:17 采纳率: 0%
浏览 699

各位大神,我明明只定义了一个进度条,为什么会在JWindow上显示2个同样的进度条,求解,下面附代码

就是这些了,让我纠结一上午,也没解决
/*

  • 打开闪屏界面 */ package MHL_View;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
import java.io.IOException;
import java.util.Date;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JWindow;

public class Open_view extends JWindow implements Runnable{

Mypanel m1;
mypanel_1 m2;
backpic bp;

public static void main(String[] args) {
    Open_view o1 = new Open_view();
    Thread t1=new Thread(o1);
    t1.start();
}

public Open_view() {

    this.setLayout(null);
    bp=new backpic();
    bp.setBounds(0,0,400,300);
    this.add(bp);

    m1 = new Mypanel();
    m1.setBounds(0, 0, 400, 270);
    Thread t1 = new Thread(m1);
    t1.start();
    this.add(m1);

    m2 = new mypanel_1();
    m2.setBounds(0, 270, 400, 30);
    Thread t2 = new Thread(m2);
    t2.start();
    this.add(m2,BorderLayout.WEST);

    int width = Toolkit.getDefaultToolkit().getScreenSize().width;
    int height = Toolkit.getDefaultToolkit().getScreenSize().height;
    this.setLocation(width / 2 - 200, height / 2 - 150);
    this.setSize(400, 300);
    this.setVisible(true);
}

@Override
public void run() {
    // TODO Auto-generated method stub
    try {
        Thread.sleep(17300);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    System.out.println("over");
    Logview lv=new Logview();
}

}

class Mypanel extends JPanel implements Runnable{
int k=0,m=0,b;
Font font=new Font("宋体",Font.PLAIN,14);
String alls[] = {"天", "王", "盖", "地", "虎", "听", "听", "斗", "地", "主", "满",
"汉", "楼", "管", "理", "系", "统" };
Color []c={Color.yellow,Color.red,Color.orange,Color.pink,Color.green};
public void paintComponent(Graphics g){
b=(int) (Math.random()*100)%5;
g.setColor(c[b]);
String s1;
if(k<5){
s1=alls[k];
g.drawString(s1, 30 + k * 20, 100);
}else if(k<10){
s1 = alls[k];
g.drawString(s1, -10 + k * 20, 140);
}else if(k<17){
s1 = alls[k];
g.drawString(s1, -50 + k * 20, 180);
}
}
public Mypanel(){
this.setSize(400,270);
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
try {
m++;
Thread.sleep(50);
if(m%10==0){
k++;
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.repaint();
}
}
}
class mypanel_1 extends JPanel implements Runnable {
JProgressBar jpb = new JProgressBar();

public mypanel_1() {
    System.out.println("进度条构造函数执行");
    this.setLayout(null);
    this.setSize(400, 30);
    jpb.setStringPainted(true);
    jpb.setString("系统正在载入请稍后");
    jpb.setBounds(0,0, 400, 30);
    jpb.setBackground(Color.red);
    this.add(jpb);

}

@Override
public void run() {
    // TODO Auto-generated method stub
    while (jpb.getValue() + 1 < 101) {
        for (int i = 0; i < 101; i++) {
            jpb.setValue(i);
            try {
                Thread.sleep(170);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

}
class backpic extends JPanel{
Image im;
public backpic(){
try {
im=ImageIO.read(new File("picture/1.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void paint(Graphics g){
g.drawImage(im, 0, 0, 400, 300, this);
}
}

  • 写回答

2条回答 默认 最新

  • lc95921 2016-10-14 07:29
    关注

    求助啊,求各位大神抽空帮下忙

    评论

报告相同问题?

悬赏问题

  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元