源代码:
1.创建窗体的代码:
package lottery;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class LotteryFrame {
public static void main(String[] args) {
JFrame frame=new JFrame();
frame.setSize(868, 552);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setUndecorated(true);
frame.setLayout(null);
Lotterypanel panel=new Lotterypanel();
panel.setBounds(0, 0, 868, 552);
frame.add(panel);
frame.setVisible(true);
panel.addMouseListener(panel);
}
}
package lottery;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class LotteryFrame {
public static void main(String[] args) {
JFrame frame=new JFrame();
frame.setSize(868, 552);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setUndecorated(true);
frame.setLayout(null);
Lotterypanel panel=new Lotterypanel();
panel.setBounds(0, 0, 868, 552);
frame.add(panel);
frame.setVisible(true);
panel.addMouseListener(panel);
}
}
2.创建面板的代码:
package lottery;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class Lotterypanel extends JPanel implements MouseListener,Runnable{
//定义初始量
String name="李菲菲";
String phone="13978673456";
boolean isStart=true;
int count=0;
int y=222;
int n=0;
int id=0;
boolean isMove=false;
//定义集合
ArrayList
ArrayList
private int i;
//读取txt文件
public Lotterypanel(){
read();
//创建线程
new Thread(this).start();
}
public void read(){
try {
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("src/lottery/lottery.txt")));
String str="";
while((str=br.readLine())!=null){
data.add(str);
count++;
id++;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void paint(Graphics g){
super.paint(g);
//读写图片
g.drawImage(new ImageIcon("img/case05/back2.jpg").getImage(), 0, 0,null);
g.drawImage(new ImageIcon("img/case05/close.png").getImage(), 840, 12,null);
g.drawImage(new ImageIcon("img/case05/again.png").getImage(), 645, 426,null);
//改变字体颜色,大小和在面板上写入数字
g.setColor(Color.yellow);
Font font = new Font("", Font.BOLD, 20);
g.setFont(font);
g.drawString("班级 姓名", 50, 520);
//控制开始和暂停按钮
if(isStart){
g.drawImage(new ImageIcon("img/case05/start.png").getImage(), 204, 311, null);
g.drawImage(new ImageIcon("img/case05/icon.jpg").getImage(), 620, 180,null);
}else{
g.drawImage(new ImageIcon("img/case05/zanting1.png").getImage(), 204, 311, null);
}
g.setColor(Color.black);
g.setFont(new Font("",Font.BOLD,30));
g.drawString(name, 90, y);
g.drawString(phone,283,y);
g.drawString(count+"",310,410);
g.setColor(Color.blue);
g.setFont(new Font("",Font.BOLD,20));
for(i=0;i g.drawString(result.get(i), 580, 130+i*22); } } @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub int x=e.getX(); int y=e.getY(); if(x>840&&x<840+17&&y>12&&y<12+18){ System.exit(0); }else if(x>204&&x<204+200&&y>311&&y<311+55){ if (count==0){ return; }else{ if(isStart){ isStart=false; isMove=true; }else{ isStart=true; isMove=false; String str=data.get(n%id); result.add(str); data.remove(n%id); count--; id--; repaint(); } } }else if(x>645&&x<645+116&&y>426&&y<426+42){ //清空和恢复原始数据 result.clear(); data.clear(); n=0; id=0; count=0; read(); repaint(); } } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } @Override //控制字符串跳动速度 public void run() { // TODO Auto-generated method stub while(true){ if(isMove){ String[] str=data.get(n%id).split(":"); name=str[0]; phone=str[1]; while(y<222+23){ y=y+5; repaint(); try { Thread.sleep(30); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } y=222; n++; repaint(); } } } }