用Java一个简单的画图程序

用Java一个简单的画图程序,第1张

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

package menu;

import javaawt;

import javaawtevent;

import javaxswing;

public class DaYin extends JFrame implements ActionListener{

public DaYin() {

Container c=thisgetContentPane();

csetLayout(new BorderLayout());

JMenuBar jmb=new JMenuBar();

JMenu jm=null;

jm=new JMenu("文件");

jmbadd(jm);

jm=new JMenu("编辑");

jmbadd(jm);

jm=new JMenu("打印");

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

jmiaddActionListener(this);

jmadd(jmi);

jmbadd(jm);

jm=new JMenu("帮助");

jmbadd(jm);

thissetJMenuBar(jmb);

thissetSize(1024,768);

thissetVisible(true);

thisaddWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

Systemexit(0);

}

});

}

public static void main(String[] args) {

new DaYin();

}

public void update(Graphics g){

gsetColor(Colorblack);

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=hangjurow+y;

int c=yy+20;

gsetFont(new Font("行楷",FontTYPE1_FONT,24));

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

gdrawLine(x+100, y-30, x+340, y-30);//打印出记账凭证下面的那条线

gsetFont(new Font("行楷",FontTYPE1_FONT,13));

gdrawString("年 月 日 第_______号", x+260, y-10);

//gdrawLine(x+430, y-10, x+470, y-10);

for(int i=0;i<=row;i++){

gdrawLine(x, y, cullieju+x+25, y);//此循环用于画出表格的行

if(i==0)

y+=hangju2;

else

y+=hangju;

}

y=csy;

gdrawLine(x+lieju3, y+hangju, cullieju+x, y+hangju);//打印出第一行半的横线

for(int j=0;j<=cul;j++){

gdrawLine(x, y, x, rowhangju+y);//此循环用于画出表格的列

x+=lieju;

}

x=csx;

for(int z=0;z<cul;z++){

gsetColor(Colorred);//设置颜色

gsetFont(new Font("",FontTYPE1_FONT,13));//设置表头字体

if(z<3)

gdrawString(title[z], a, b+hangju/2);

else

gdrawString(title[z], a, b);//为表格添加表头

a+=lieju;

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

int xx=lieju3+x+10;

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

gdrawLine(xx, y+hangju, xx, rowhangju+y+hangju);//此循环用于画出表格的列

gsetFont(new Font("",FontTYPE1_FONT,11));

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

if(v%2==0)

gsetColor(Colorred);//设置颜色

else

gsetColor(ColorBLUE);//设置颜色

xx+=10;

}

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

gdrawLine(xx, y+hangju, xx, rowhangju+y+hangju);//此循环用于画出表格的列

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

if(n%2==0)

gsetColor(Colorred);//设置颜色

else

gsetColor(ColorBLUE);//设置颜色

xx+=10;

}

gdrawString(danwei[9],xx-10, y+hangju+20);

gsetColor(Colorblack);//设置颜色

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

gdrawLine(x,yy , cullieju+x, yy);//此循环用于画出表格的行

yy+=hangju;

}

yy=hangjurow+y;

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

gdrawLine(x, yy, x, (row+1)hangju+y);//此循环用于画出表格的列

if(j>0){

x+=lieju;

}else{

x+=lieju3;

}

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

x=csx;

gsetFont(new Font("",FontTYPE1_FONT,13));

gdrawString("合 计",x+60, c);

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

gdrawLine(cullieju+x+25, y, cullieju+x+25, (row+1)hangju+y);//打印出最后一列

gdrawString("记",cullieju+x+6, y+15);

gdrawString("账", cullieju+x+6, y+35);

gdrawString("√", cullieju+x+6, y+55);//134-136为最后一列写入字体

gdrawString("附",cullieju+x+35, y+75);

gdrawString("件", cullieju+x+35, y+95);

gdrawString("张", cullieju+x+35, y+175);//134-136为最后一列后写入字体

}

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if(egetActionCommand()equals("打印预览")){

thisrepaint();

}

}

}

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

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

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

import javaawtFlowLayout;

import javaawteventActionEvent;

import javaawteventActionListener;

import javaxswingJButton;

import javaxswingJFrame;

import javaxswingJLabel;

import javaxswingJOptionPane;

import javaxswingJPasswordField;

import javaxswingJTextField;

public class Login {

public static void main(String args[]) {

LoginFrm frame = new LoginFrm();

}

}

class LoginFrm extends JFrame implements ActionListener{

JLabel nameLabel=new JLabel("用户名:");

JLabel pwdLabel=new JLabel("密码:");

JTextField name=new JTextField(10);

JPasswordField password=new JPasswordField(10);

JButton butnSure=new JButton("确定");

JButton butnCancel=new JButton("取消");

public LoginFrm() {

super("登陆");

setBounds(500, 200, 280, 220);

setVisible(true);

setLayout(null);

nameLabelsetBounds(45, 20, 100, 25);

add(nameLabel);

add(name);

namesetBounds(105, 20, 110, 25);

add(pwdLabel);

pwdLabelsetBounds(45, 60, 100, 25);

add(password);

passwordsetBounds(105, 60, 110, 25);

add(butnSure);

butnSuresetBounds(45, 100, 80, 25);

add(butnCancel);

butnCancelsetBounds(135, 100, 80, 25);

butnSureaddActionListener(this);

butnCanceladdActionListener(this);

setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

validate();//刷新

}

public void actionPerformed(ActionEvent e) {

if (egetSource() ==butnSure){

Systemoutprintln("用户名:"+namegetText());

Systemoutprintln("密码:"+namegetText());

if("admin"equals(namegetText()trim())&&"123"equals(passwordgetText()trim())){

thisdispose();

new MainFrm("用户界面",namegetText()trim(),passwordgetText()trim());

}else {

JOptionPaneshowMessageDialog(this, "用户不存在");

}

}else if(egetSource()==butnCancel){

Systemexit(1);

}

}

class MainFrm extends JFrame{

private JLabel info;

public MainFrm(String s,String name,String password) {

super(s);

setBounds(400, 200, 500, 400);

setLayout(new FlowLayout());

info=new JLabel("登陆成功,用户名:"+name+",密码:"+password);

add(info);

setVisible(true);

setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

validate();

}

}

}

楼上的,这是用JavaScript来做的,而不是用java!!

建一个文件名叫:clockhtml,里面代码如下:

<html>

<head>

<title>js做的时钟</title>

<SCRIPT type="text/javascript" >

<!--

Dateprototypeformat = function(mask) {

var d = this;

var zeroize = function (value, length) {

if (!length) length = 2;

value = String(value);

for (var i = 0, zeros = ''; i < (length - valuelength); i++) {

zeros += '0';

}

return zeros + value;

};

return maskreplace(/"[^"]"|'[^']'|\b(:d{1,4}|m{1,4}|yy(:yy)|([hHMstT])\1|[lLZ])\b/g, function($0) {

switch($0) {

case 'd':    return dgetDate();

case 'dd':    return zeroize(dgetDate());

case 'ddd':    return ['Sun','Mon','Tue','Wed','Thr','Fri','Sat'][dgetDay()];

case 'dddd':    return ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'][dgetDay()];

case 'M':    return dgetMonth() + 1;

case 'MM':    return zeroize(dgetMonth() + 1);

case 'MMM':    return ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'][dgetMonth()];

case 'MMMM':    return ['January','February','March','April','May','June','July','August','September','October','November','December'][dgetMonth()];

case 'yy':    return String(dgetFullYear())substr(2);

case 'yyyy':    return dgetFullYear();

case 'h':    return dgetHours() % 12 || 12;

case 'hh':    return zeroize(dgetHours() % 12 || 12);

case 'H':    return dgetHours();

case 'HH':    return zeroize(dgetHours());

case 'm':    return dgetMinutes();

case 'mm':    return zeroize(dgetMinutes());

case 's':    return dgetSeconds();

case 'ss':    return zeroize(dgetSeconds());

case 'l':    return zeroize(dgetMilliseconds(), 3);

case 'L':    var m = dgetMilliseconds();

if (m > 99) m = Mathround(m / 10);

return zeroize(m);

case 'tt':    return dgetHours() < 12  'am' : 'pm';

case 'TT':    return dgetHours() < 12  'AM' : 'PM';

case 'Z':    return dtoUTCString()match(/[A-Z]+$/);

// Return quoted strings with the surrounding quotes removed

default:    return $0substr(1, $0length - 2);

}

});

};

function refreshCalendarClock(){

documentallcalendarClock4innerHTML = new Date()format("yyyy年MM月dd日 HH:mm:ss");

}

var going = true;

function oprationClock(obj) {

if(obj) {

refreshCalendarClock();

setTimeout("oprationClock(going)",1000)

if(!going) going=true;

return;

}

going = false;

}

// -->

</SCRIPT>

</head>

<body onLoad="oprationClock(true)">

<h1>用js做的时钟:</h1>

<hr />

<font color="green"><h2 id="calendarClock4">&nbsp;</h2></font>

时钟开关:<input type="radio" name="opration" value="1" onClick="oprationClock(this)" checked/>开

<input type="radio" name="opration" onClick="oprationClock(false)" />关

</body>

</html>

效果图,另外有个更有趣的时钟,像闹钟一样的,见参考资料

贪吃蛇游戏 望采纳

import javaawtButton;

import javaawtColor;

import javaawtGridLayout;

import javaawtPoint;

import javaawteventKeyEvent;

import javaawteventKeyListener;

import javautil;

import javaxswingJFrame;

import javaxswingJOptionPane;

public class Snake extends JFrame implements KeyListener{

int Count=0;

Button[][] grid = new Button[20][20];

ArrayList<Point> snake_list=new ArrayList<Point>();

Point bean=new Point(-1,-1);//保存随机豆子坐标

int Direction = 1; //方向标志 1:上 2:下 3:左 4:右

//构造方法

public Snake()

{

//窗体初始化

thissetBounds(400,300,390,395);

thissetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

GridLayout f=new GridLayout(20,20);

thisgetContentPane()setBackground(Colorgray);

thissetLayout(f);

//初始化2020个按钮

for(int i=0;i<20;i++)

for(int j=0;j<20;j++)

{

grid[i][j]=new Button();

thisadd(grid[i][j]);

grid[i][j]setVisible(false);

grid[i][j]addKeyListener(this);

grid[i][j]setBackground(Colorblue);

}

//蛇体初始化

grid[10][10]setVisible(true);

grid[11][10]setVisible(true);

grid[12][10]setVisible(true);

grid[13][10]setVisible(true);

grid[14][10]setVisible(true);

//在动态数组中保存蛇体按钮坐标行列信息

snake_listadd(new Point(10,10));

snake_listadd(new Point(11,10));

snake_listadd(new Point(12,10));

snake_listadd(new Point(13,10));

snake_listadd(new Point(14,10));

thisrand_bean();

thissetTitle("总分:0");

thissetVisible(true);

}

//该方法随机一个豆子,且不在蛇体上,并使豆子可见

public void rand_bean(){

Random rd=new Random();

do{

beanx=rdnextInt(20);//行

beany=rdnextInt(20);//列

}while(snake_listcontains(bean));

grid[beanx][beany]setVisible(true);

grid[beanx][beany]setBackground(Colorred);

}

//判断拟增蛇头是否与自身有碰撞

public boolean is_cross(Point p){

boolean Flag=false;

for(int i=0;i<snake_listsize();i++){

if(pequals(snake_listget(i) )){

Flag=true;break;

}

}

return Flag;

}

//判断蛇即将前进位置是否有豆子,有返回true,无返回false

public boolean isHaveBean(){

boolean Flag=false;

int x=snake_listget(0)x;

int y=snake_listget(0)y;

Point p=null;

if(Direction==1)p=new Point(x-1,y);

if(Direction==2)p=new Point(x+1,y);

if(Direction==3)p=new Point(x,y-1);

if(Direction==4)p=new Point(x,y+1);

if(beanequals(p))Flag=true;

return Flag;

}

//前进一格

public void snake_move(){

if(isHaveBean()==true){//////////////有豆子吃

Point p=new Point(beanx,beany);//很重要,保证吃掉的是豆子的复制对象

snake_listadd(0,p); //吃豆子

grid[px][py]setBackground(Colorblue);

thisCount++;

thissetTitle("总分:"+Count);

thisrand_bean(); //再产生一个豆子

}else{///////////////////无豆子吃

//取原蛇头坐标

int x=snake_listget(0)x;

int y=snake_listget(0)y;

//根据蛇头坐标推算出拟新增蛇头坐标

Point p=null;

if(Direction==1)p=new Point(x-1,y);//计算出向上的新坐标

if(Direction==2)p=new Point(x+1,y);//计算出向下的新坐标

if(Direction==3)p=new Point(x,y-1);//计算出向左的新坐标

if(Direction==4)p=new Point(x,y+1);//计算出向右的新坐标

//若拟新增蛇头碰壁,或缠绕则游戏结束

if(px<0||px>19|| py<0||py>19||is_cross(p)==true){

JOptionPaneshowMessageDialog(null, "游戏结束!");

Systemexit(0);

}

//向蛇体增加新的蛇头坐标,并使新蛇头可见

snake_listadd(0,p);

grid[px][py]setVisible(true);

//删除原蛇尾坐标,使蛇尾不可见

int x1=snake_listget(snake_listsize()-1)x;

int y1=snake_listget(snake_listsize()-1)y;

grid[x1][y1]setVisible(false);

snake_listremove(snake_listsize()-1);

}

}

@Override

public void keyPressed(KeyEvent e) {

if(egetKeyCode()==KeyEventVK_UP && Direction!=2) Direction=1;

if(egetKeyCode()==KeyEventVK_DOWN && Direction!=1) Direction=2;

if(egetKeyCode()==KeyEventVK_LEFT && Direction!=4) Direction=3;

if(egetKeyCode()==KeyEventVK_RIGHT && Direction!=3) Direction=4;

}

@Override

public void keyReleased(KeyEvent e) { }

@Override

public void keyTyped(KeyEvent e) { }

public static void main(String[] args) throws InterruptedException {

Snake win=new Snake();

while(true){

winsnake_move();

Threadsleep(300);

}

}

}

import javaawt;

import javaawtevent;

import javaapplet;

public class Try extends Applet implements ActionListener

{

public void init()

{

Button b=new Button("请按按钮");

baddActionListener(this);

add(b);

}

public void actionPerformed(ActionEvent e)

{

Frame f=new Frame("警告");

fsetSize(200,100);

fsetLocation(300,300);

fadd(new Label("你按了按钮!"));

fsetVisible(true);

}

}

以上就是关于用Java一个简单的画图程序全部的内容,包括:用Java一个简单的画图程序、求编写一个超级简单的Java的程序源代码、很简单的java程序制作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10210681.html

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

发表评论

登录后才能评论

评论列表(0条)

保存