用Java编写的简易访xp系统的画图板
首先得建立一个窗口,也就是画图的位置,我试了两种方法。
第一种,定义一个类,在类里面建立JFrame对象 通过对象来进行窗口的建立。
第二种,定义一个类,继承JFrame,可以通过this来调用当前建立的窗口,最后选择了第二种方式窗口代码如下
public class MyFrame extends javax.swing.JFrame{
//显示界面的方法
public void showUI(){
//设置窗口大小
this.setSize(300,400);
//设置标题
this.setTitle("画图板");
//设置窗口显示位置居中
this.setLocationRelativeTo(null);
//设置窗体关闭时的操作
this.setDefaultCloseOperation(3);
//创建一个流式布局对象
java.awt.FlowLayout layout=new java.awt.FlowLayout();
//设置窗体的布局
this.setLayout(layout);
//获取当前窗口的画布对象,必须是可见之后
final java.awt.Graphics g = this.getGraphics();
java.awt.event.MouseListener mouse_listener = new MyMouseListener(g);
//创建监听
this.addMouseListener(mouse_listener);
//可见
this.setVisible(true);
}
}
还要在窗口中创建画布,要不然不能在里面画图
画布的创建代码如上面红色字体,注意:获取当前窗口的画布对象,必须是可见之后。
因为所有的 监听器都是接口类型的,所以要把里面的方法都具体化。MouseListener里面有五种方法。不清楚的可以自己去查api
我的代码部分如下
//鼠标事件,实现MouseListener
public class MyMouseListener implements java.awt.event.MouseListener{
//定义坐标
int x1,y1,x2,y2;
//定义画布
java.awt.Graphics g;
//定义构造函数,接受传过来的画布
public MyMouseListener(java.awt.Graphics gr){
g = gr;
}
public void mouseClicked(java.awt.event.MouseEvent e){
//鼠标点击时调用
}
public void mouseEntered(java.awt.event.MouseEvent e){
//鼠标进入到组件是调用
}
public void mouseExited(java.awt.event.MouseEvent e){
//鼠标离开组件是调用
}
public void mousePressed(java.awt.event.MouseEvent e){
//鼠标按键在组件上按下时调用
x1 = e.getX();
y1 = e.getY();
}
public void mouseReleased(java.awt.event.MouseEvent e){
//鼠标按钮在组件上释放时调用
x2 = e.getX();
y2 = e.getY();
//画直线
//g.drawLine(x1,y1,x2,y2);
//画矩形
//g.drawRect(Math.min(x1,x2),Math.min(y1,y2),Math.abs(x2-x1),Math.abs(y2-y1));
}
}
通过方法参数的传送来实现两个类中数据的传送
当然此方法有很多不足之处,大家自己去试一试。关于解决方法下次会给出。
大致就这些,希望能给新手们一点点帮助,当然也希望大家支持。