重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
线程中,不要直接访问界面的组件。。。。。。。通过自定义事件
10年的白塔网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整白塔建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“白塔网站设计”,“白塔网站推广”以来,每个客户项目都认真落实执行。
//欢迎界面
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);
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秒
—_— ||
给图片加个变量,boolean life = true;
绘制的时候,判断是这个变量是否为真。如果为真,才绘制。
当你的鼠标点击了图片,把life改为false不就行了、、、、
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class RunningBallDemo extends JFrame {
public static void main(String args[]) {
new RunningBallDemo();
}
public RunningBallDemo() {
Ball ballPanel = new Ball(5, 5);
getContentPane().add(ballPanel);
setBackground(Color.BLACK);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setSize(350, 350);
setVisible(true);
Thread thread1 = new Thread(ballPanel);
thread1.start();
}
}
class Ball extends JPanel implements Runnable {
int rgb = 0;
Color color;
int x, y;
int dx = 5, dy = 5;
Ball(int x, int y) {
this.x = x;
this.y = y;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
setBackground(Color.BLACK);
g.setColor(color);
g.fillOval(x, y, 50, 50);
}
public void run() {
while (true) {
if (x = 0) {
dx = 5;
updateBallColor();
} else if ((x + 50) = getWidth()) {
dx = -5;
updateBallColor();
}
if (y = 0) {
dy = 5;
updateBallColor();
} else if ((y + 50) = getHeight()) {
dy = -5;
updateBallColor();
}
x = x + dx;
y = y + dy;
repaint();
try {
Thread.sleep(25);
} catch (InterruptedException e) {
;
}
}
}
public void updateBallColor() {
rgb = new Random().nextInt();
color = new Color(rgb);
}
}