⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ledpanel.java

📁 朋友开发的一个扫雷游戏,用SWT开发的,游戏有点慢,想了解的下载看看吧
💻 JAVA
字号:
/*
 * Created on 2005-6-5
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package bomb;

import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.graphics.PaletteData;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.SWT;

import java.util.Observer;
import java.util.Observable;
/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public abstract class LEDPanel extends Canvas implements Observer{
	private int patterns[] = null;
	private Image img = null;
	private Color foreGround = null;
	private Color backGround = null;
	private DigitalModel digitalModel = null;
	private int len = 0;
	
	public LEDPanel(Composite parent,int[] patterns){
		super(parent,SWT.BORDER);
		foreGround = this.getDisplay().getSystemColor(SWT.COLOR_RED);
		backGround = this.getDisplay().getSystemColor(SWT.COLOR_BLACK);
		RGB rgb[] = new RGB[]{backGround.getRGB(),foreGround.getRGB()};
		digitalModel = new DigitalModel(new PaletteData(rgb));
		addPaintListener(new PaintListener(){
			public void paintControl(PaintEvent event){
				paint(event); 
			}
		});
		addDisposeListener(new DisposeListener(){
			public void widgetDisposed(DisposeEvent event){
				if (img != null){
					img.dispose();
				}
			}
		});
		this.len = patterns.length;
		setPatterns(patterns);
		
	}
	
	private void paint(PaintEvent event){
		Rectangle rect = getClientArea();
		ImageData imageData = digitalModel.getModel(patterns);
		img = new Image(getDisplay(),imageData);
		event.gc.drawImage(img,imageData.x,imageData.y,imageData.width,imageData.height,
							rect.x,rect.y,rect.width,rect.height);
	}
	
	public Point computeSize(int wHint,int hHint,boolean changed){
		return new Point(15 * patterns.length ,28);
	}
	
	public void setPatterns(int[] patterns){
		this.patterns = patterns;
		this.redraw();
	}
	public void setPattern(int pattern){
		int index[] = new int[3];
		int div =100;
		if (pattern > -999 && pattern <999){
		    int i = 0;
		    if (pattern < 0){
		        index[i++] = 10;
		        pattern = Math.abs(pattern);
		        div/=10;
		    }
		    int k = 3;
		    
		    for (;i<k;i++){
		        index[i] =  pattern/div;
		        pattern =pattern%div;
		        div = div/10;
		    }
		}
	    this.setPatterns(index);

	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -