实现鼠标画图的Java程序

实现鼠标画图的Java程序,第1张

import java awt Color

import java awt Frame

import java awt Graphics

import java awt Point

import java awt event MouseAdapter

昌枝import java awt event MouseEvent

import java awt event MouseListener

import java util ArrayList

import java util Iterator

public class MyMouseAdapter {

public static void main(String[] args) {

new MyFrame ( drawing )

}

}

class MyFrame extends Frame{

ArrayList points=null

MyFrame (String s){

super(s)

points=new ArrayList()

setLayout(null)

setBounds( )

this setBackground(new Color( ))

setVisible(true)

this addMouseListener(new Monitor ())

}

public void paint(Graphics g){

Iterator i=erator()

while(i hasNext()){

Point p=(Point)i next()

g setColor(Color blue)

耐唤敏g fillOval(p x p y )

}

}

public void addPoint(Point p){

points add(p)

}

}

class Monitor extends MouseAdapter{ //MouseAdapter实现了MouseListener接口

public void mousePressed(MouseEvent e){

MyFrame f=(MyFrame )e getSource()

f addPoint(new Point(e getX() e getY()))

f repaint()//让Frame强制经行链明重画

}

lishixinzhi/Article/program/Java/hx/201311/26376

下面是我以前做的小程序,希望能给你点帮助!

package menu

import java.awt.*

import java.awt.event.*

import javax.swing.*

public class DaYin extends JFrame implements ActionListener{

public DaYin() {

Container c=this.getContentPane()

c.setLayout(new BorderLayout())

JMenuBar jmb=new JMenuBar()

JMenu jm=null

jm=new JMenu("文件")

jmb.add(jm)

jm=new JMenu("编辑")

jmb.add(jm)

jm=new JMenu("打印")

JMenuItem jmi=new JMenuItem("打印预览")

jmi.addActionListener(this)

jm.add(jmi)

jmb.add(jm)

jm=new JMenu("帮助")

jmb.add(jm)

this.setJMenuBar(jmb)

this.setSize(1024,768)

this.setVisible(true)

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0)

}

})

}

public static void main(String[] args) {

new DaYin()

}

public void update(Graphics g){

g.setColor(Color.black)

String title[]={"摘要","科目","子目或户名","借方金额","贷方金额"}

String danwei[]={"千","百","十","万","千","百烂蠢谈","十","元","角","分"}

int csx=200//打印x的初始坐标

int csy=200//打印y的初始坐标

int x=csx

int y=csy

int a=x+20//打饥碰印字体x的初始坐标

int b=y+20//打印字体y的初始坐标

int row=7//一共打印出几条横线

int cul=5//一共打印出几条竖线

int hangju=30//线与线之间的纵向间距

int lieju=100//线与线之间的横向间距

int yy=hangju*row+y

int c=yy+20

g.setFont(new Font("行楷",Font.TYPE1_FONT,24))

g.drawString("记 账 凭 证", x+160, y-40)//打印出记账凭证这几个字

g.drawLine(x+100, y-30, x+340, y-30)//打印出记账凭证下面的档绝那条线

g.setFont(new Font("行楷",Font.TYPE1_FONT,13))

g.drawString("年 月 日 第_______号", x+260, y-10)

//g.drawLine(x+430, y-10, x+470, y-10)

for(int i=0i<=rowi++){

g.drawLine(x, y, cul*lieju+x+25, y)//此循环用于画出表格的行

if(i==0)

y+=hangju*2

else

y+=hangju

}

y=csy

g.drawLine(x+lieju*3, y+hangju, cul*lieju+x, y+hangju)//打印出第一行半的横线

for(int j=0j<=culj++){

g.drawLine(x, y, x, row*hangju+y)//此循环用于画出表格的列

x+=lieju

}

x=csx

for(int z=0z<culz++){

g.setColor(Color.red)//设置颜色

g.setFont(new Font("",Font.TYPE1_FONT,13))//设置表头字体

if(z<3)

g.drawString(title[z], a, b+hangju/2)

else

g.drawString(title[z], a, b)//为表格添加表头

a+=lieju

}//76-89打印出一个表格形状

int xx=lieju*3+x+10

for(int v=0v<=9v++){

g.drawLine(xx, y+hangju, xx, row*hangju+y+hangju)//此循环用于画出表格的列

g.setFont(new Font("",Font.TYPE1_FONT,11))

g.drawString(danwei[v], xx-10, y+hangju+20)//为表格添加表头

if(v%2==0)

g.setColor(Color.red)//设置颜色

else

g.setColor(Color.BLUE)//设置颜色

xx+=10

}

for(int n=0n<9n++){

g.drawLine(xx, y+hangju, xx, row*hangju+y+hangju)//此循环用于画出表格的列

g.drawString(danwei[n],xx-10, y+hangju+20)//为表格添加表头

if(n%2==0)

g.setColor(Color.red)//设置颜色

else

g.setColor(Color.BLUE)//设置颜色

xx+=10

}

g.drawString(danwei[9],xx-10, y+hangju+20)

g.setColor(Color.black)//设置颜色

for(int i=0i<=1i++){

g.drawLine(x,yy , cul*lieju+x, yy)//此循环用于画出表格的行

yy+=hangju

}

yy=hangju*row+y

for(int j=0j<=3j++){

g.drawLine(x, yy, x, (row+1)*hangju+y)//此循环用于画出表格的列

if(j>0){

x+=lieju

}else{

x+=lieju*3

}

}//112-128打印出表格的最后一行单元格

x=csx

g.setFont(new Font("",Font.TYPE1_FONT,13))

g.drawString("合 计",x+60, c)

g.drawString("会计主管 记账 出纳 审核 制证", x+30, yy+50)

g.drawLine(cul*lieju+x+25, y, cul*lieju+x+25, (row+1)*hangju+y)//打印出最后一列

g.drawString("记",cul*lieju+x+6, y+15)

g.drawString("账", cul*lieju+x+6, y+35)

g.drawString("√", cul*lieju+x+6, y+55)//134-136为最后一列写入字体

g.drawString("附",cul*lieju+x+35, y+75)

g.drawString("件", cul*lieju+x+35, y+95)

g.drawString("张", cul*lieju+x+35, y+175)//134-136为最后一列后写入字体

}

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if(e.getActionCommand().equals("打印预览")){

this.repaint()

}

}

}

使用drawLine()做了一个记账凭证。

执行点击"打印"子菜单"打印预览"就可显示出我们所画的"记账凭证表"

希望这个小程序能够给你点灵感


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12564082.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存