java闪动代码 java跳转代码

java程序 出现的按钮会闪烁 求解Java程序java闪动代码:
import java.awt.Color;
import java.awt.FlowLayout;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Main extends JFrame implements Runnable {
JButton btn;
public Main() {
super("闪烁java闪动代码的按钮");
this.setSize(300, 300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
btn = new JButton("java闪动代码我会闪烁");
this.add( btn);
Thread th = new Thread(this);
th.start();
}
public static void main(String[] args) {
new Main();
}
@Override
public void run() {
int r = 127;
int g = 127;
int b = 127;
int i, j, k;
Random rand = new Random();
while(true) {
i = rand.nextInt(255);
j = rand.nextInt(255);
k = rand.nextInt(255);
r = (r + i) % 255 + 1;
g = (g + j) % 255 + 1;
b = (b + k) % 255 + 1;
btn.setBackground(Color.getHSBColor(r, g, b));
try {
Thread.sleep(100);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
运行该程序后java闪动代码,可以看到按钮java闪动代码的背景会持续闪烁 。
用java写的欢迎窗体闪动后消失的代码//欢迎界面
import java.awt.Toolkit;
import javax.swing.*;
public class PicWelcome extends JDialog {
private JPanel p;
private JLabel l;
private int w=500;//界面宽度
private int h=290;//界面高度
private final int ScreenW=Toolkit.getDefaultToolkit().getScreenSize().width;//屏幕宽
private final int ScreenH=Toolkit.getDefaultToolkit().getScreenSize().height;//屏幕高
public PicWelcome(){
p=new JPanel();
l=new JLabel("这里本来是new ImageIcon(图片路径)");
p.add(l);
【java闪动代码 java跳转代码】this.add(p);
this.setResizable(false);
this.setBounds((ScreenW-w)/2, (ScreenH-h)/2, w, h);
this.setVisible(true);
}
}
//登陆界面
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.Timer;
public class LoginFace extends JFrame{
private int w=250;//界面宽度
private int h=150;//界面高度
private final int ScreenW=Toolkit.getDefaultToolkit().getScreenSize().width;//屏幕宽
private final int ScreenH=Toolkit.getDefaultToolkit().getScreenSize().height;//屏幕高
private Timer time;
public LoginFace(String title){
super(title);
final JDialog pw = new PicWelcome();
time=new Timer(1200,new ActionListener(){
public void actionPerformed(ActionEvent e) {
pw.setVisible(false);
time.stop();
LoginFace.this.setVisible(true);
}
});
time.start();
this.setBounds((ScreenW-w)/2, (ScreenH-h)/2, w, h);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//main方法程序入口
public static void main(String[] args){
new LoginFace("登陆界面");
}
}
还是学生时代的时候写的代码,随便改了改给你参考一下吧 。
本来欢迎界面JLabel中是一张图片的,为了方便你查看,就改成文字了 。
timer 时间自己改 这里是 1200 其实就是1.2秒
java 动画闪烁,怎么解决?代码有130来行,百度传不上,求高手留邮箱,我发 。我记得双缓存,就是画的时候在一张全新的Graphics上画,画好后直接覆盖就可以了 。好多年前的事情了 , 记不起来了 。
实现星星闪动的java代码package panel;

推荐阅读