package ViewAbstract;
import java.awt.Color;
import java.awt.Component;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.swing.JFrame;
import javax.swing.JPanel;
import process.tool02;
import control.ctrlAllFrame;
public abstract class FrameGo extends JFrame {
MyPanel mp = null;
public Map pointListY;
public Map pointListX;
public Image imageInitial;
int frameWid = 200;
public int frameHei = 245;
public String name;
public List contex=new ArrayList();
public ctrlAllFrame ctrlAll;
protected MyPanel getPanle(){
return mp;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
FrameGo demo01 = new FrameGo() {
@Override
public void PaintFrame(Graphics g) {
g.drawOval(100, 100, 30, 30);
}
@Override
public void setContex() {
// TODO Auto-generated method stub
}
};demo01.setVisible(true);
}
public FrameGo(int hei, int wdi) {
this.frameHei = hei;
this.frameWid = wdi;
sameFrameGo();
}
public FrameGo() {
sameFrameGo();
}
public void sameFrameGo(){
mp = new MyPanel() {
@Override
public void Paint(Graphics g) {
PaintFrame(g);
}
};
this.setSize(frameWid, frameHei);
mp.setSize(frameWid, frameHei);
setContex();
if(!contex.isEmpty()){
for(int i=0;i<contex.size();i++){
mp.add((Component)contex.get(i));
}
}
mp.setSize(frameWid, frameHei);
this.Listener();
//mp.setBackground(Color.ORANGE);
this.add(mp);
mp.setLayout(null);
//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(false);
//禁用输入法
(this).enableInputMethods(false);
mp.enableInputMethods(false);
}
public void Listener() {
MyKeyAdp keyAda = new MyKeyAdp();
keyAda.setFram(this);
if(!contex.isEmpty()){
for(int i=0;i<contex.size();i++){
((Component)contex.get(i)).addKeyListener(keyAda);
//禁用输入法
((Component)contex.get(i)).enableInputMethods(false);
}
}
this.addKeyListener(keyAda);
this.addComponentListener(new ComponentAdapter(){
@Override
public void componentResized(ComponentEvent e) {
// TODO Auto-generated method stub
super.componentResized(e);
mp.repaint();
}
});
}
public abstract void PaintFrame(Graphics g);
public abstract void setContex();
}
// 定义一个MyPanel面板,用于绘图区域
abstract class MyPanel extends JPanel {
Image b2;
MyPanel() {
b2=tool02.getImage("./lib/611_205148_239626.jpg");
new Thread() {
@Override
public void run() {
while (true) {
try {
sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}
};
}.start();
}
// 覆盖JPanel
// Graphics 是绘图的重要类,可以理解成一支画笔
@Override
public void paint(Graphics g) {
// 1. 调用父类函数完成初始化任务
// 这句话不可以少
super.paint(g);
this.setBackground(Color.blue);
//公共画法
g.drawImage(b2, 0, 0, this.getWidth(),b2.getHeight(this)*this.getWidth()/b2.getWidth(this), this);
this.Paint(g);
// 先画出一个圆圈
}
public abstract void Paint(Graphics g);
}
// 定义一个MyPanel面板,用于绘图区域
class MyKeyAdp extends KeyAdapter {
Frame frame;
boolean discribe=true;
boolean frameTop=true;
public void setFram(Frame frame) {
this.frame = frame;
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if (e.getKeyChar() == 'q') {
frame.setSize(1 + (frame.getWidth()), frame.getHeight());
}
if (e.getKeyChar() == 'w') {
frame.setSize((frame.getWidth()) - 1, frame.getHeight());
}
if (e.getKeyChar() == 'a') {
frame.setSize((frame.getWidth()), frame.getHeight() + 1);
}
if (e.getKeyChar() == 's') {
frame.setSize((frame.getWidth()), frame.getHeight() - 1);
}
if (e.getKeyChar() == 'z') {
frame.dispose();
frame.setUndecorated(discribe);// 取消窗体修饰
System.out.println(discribe);
discribe=!discribe;
frame.setVisible(true);
}
if (e.getKeyChar() == 'x') {
frame.setAlwaysOnTop(frameTop);// 窗体置顶
System.out.println(frameTop);
frameTop=!frameTop;
}
/*
* 相应子类实现 if(e.getKeyChar()=='q'){ System.out.println("帧数增加"); }
* if(e.getKeyChar()=='w'){ System.out.println("帧数减少"); }
* if(e.getKeyChar()=='z'){ System.out.println("取消全屏"); }
*/
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
chang.camera.rar (47个子文件)
chang.camera
bin
control
ctrlAllFrame.class 2KB
encoding.class 595B
process
tool02.class 994B
camera.class 961B
textAndRun
text.class 570B
point.class 305B
runMain.class 474B
ViewAbstract
FrameGo$2.class 634B
FrameGo.class 3KB
FrameGo$3.class 761B
MyPanel.class 1KB
FrameGo$1.class 650B
MyPanel$1.class 757B
MyKeyAdp.class 1KB
View
ruleFrame$1.class 814B
picFrame$1.class 808B
ruleFrame.class 1KB
mainFrame$2.class 826B
emptFrame.class 853B
mainFrame$3.class 827B
mainFrame$4.class 827B
mainFrame.class 2KB
mainFrame$1.class 972B
picFrame.class 2KB
emptFrame$1.class 814B
lib
bridj-0.6.2.jar 858KB
slf4j-api-1.7.2.jar 25KB
webcam-capture-0.3.12-20161206.184756-3.jar 407KB
611_205148_239626.jpg 207KB
.settings
org.eclipse.core.resources.prefs 201B
src
control
encoding.java 325B
ctrlAllFrame.java 2KB
process
camera.java 472B
tool02.java 457B
textAndRun
runMain.java 246B
text.java 274B
ViewAbstract
FrameGo.java 5KB
View
mainFrame.java 2KB
emptFrame.java 682B
ruleFrame.java 1KB
picFrame.java 1KB
lib
bridj-0.6.2.jar 858KB
slf4j-api-1.7.2.jar 25KB
webcam-capture-0.3.12-20161206.184756-3.jar 407KB
611_205148_239626.jpg 207KB
.project 388B
.classpath 525B
共 47 条
- 1
资源评论
- _Gerald2020-10-12jdk1.6这个……
- 许侠客2018-10-17可以看到图像,就是分辨率太低,正在修改成自己想要的!qq_354704892018-10-20很开心能收到你的回复,有不了解的可以和我沟通,分辨率这个是由摄像头决定的吧
qq_35470489
- 粉丝: 3
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功