用Java一个简单的画图程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Java一个简单的画图程序相关的知识,希望对你有一定的参考价值。
要使用Graphics类中的相关画图方法实现画图功能,同时结合使用point类、color类等。对于Graphics类主要用到的方法有:drawLine()(画直线)、drawRect()(画矩形)、drawOval()(画椭圆)和setColor()(设置画笔颜色)方法, point类与Color类在图形应用中都是一些常用的基本类,利用Color类可以很方便地定义和控制所画图形的颜色。
下面是我以前做的小程序,希望能给你点帮助!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=0;i<=row;i++)
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=0;j<=cul;j++)
g.drawLine(x, y, x, row*hangju+y);//此循环用于画出表格的列
x+=lieju;
x=csx;
for(int z=0;z<cul;z++)
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=0;v<=9;v++)
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=0;n<9;n++)
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=0;i<=1;i++)
g.drawLine(x,yy , cul*lieju+x, yy);//此循环用于画出表格的行
yy+=hangju;
yy=hangju*row+y;
for(int j=0;j<=3;j++)
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()做了一个记账凭证。
执行点击"打印"子菜单"打印预览"就可显示出我们所画的"记账凭证表"
希望这个小程序能够给你点灵感 参考技术A 简单啊,先引入相应的组件包 import java.awt.*;import java.awt.event.*;import javax.swing.*;写的类要继承JFrame 接下来就是调用刚刚引入包里面的方法了,paint();这是就思路了。 参考技术B import java.awt。
以上是关于用Java一个简单的画图程序的主要内容,如果未能解决你的问题,请参考以下文章