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()做了一个记账凭证。
执行点击"打印"子菜单"打印预览"就可显示出我们所画的"记账凭证表"
希望这个小程序能够给你点灵感
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)