java-----五子棋小游戏(一)-----背景图片制作

一、代码实现

package org.like.game.frame;

import java.awt.Font;//改字体
import java.awt.Graphics;//自动调用里面的paint()方法,需要重写
import java.awt.Toolkit;//获取电脑屏幕的长和宽
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;//导入图片作为背景(流)
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class FiveChessFrame extends JFrame implements MouseListener
{
	int width = Toolkit.getDefaultToolkit().getScreenSize().width;//屏幕的宽
	int height = Toolkit.getDefaultToolkit().getScreenSize().height;//屏幕的长
    BufferedImage bgImage = null;//图片缓冲流
    
	public FiveChessFrame()
	{
		this.setTitle("五子棋");
		this.setSize(500,500);//设置程序窗体大小
		this.setLocation((width-500)/2,(height-500)/2);//使得程序窗口出现在屏幕的正中央
		this.setResizable(false);//设置程序窗体的大小不可编辑
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//使得点击'关闭'符号时,程序停止运行
		this.setVisible(true);
		
		this.addMouseListener(this);
		try
		{//将背景图片以字节流的形式读取到内存,再通过paint()方法输出,作为程序的背景
			bgImage = ImageIO.read(new File("F:/mypicture/java/background.jpg"));
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}
	
	public void paint(Graphics g)//程序会自动调用此方法
	{
		g.drawImage(bgImage,3,20,this);//this表示在将图片作为此窗体的背景
		g.setFont(new Font("黑体",Font.BOLD,20));//设置“游戏信息”的字体
		g.drawString("游戏信息", 150, 50);
		g.setFont(new Font("宋体",0,14));//再为以下文字设置字体
		g.drawString("黑方时间:无限制", 45, 470);
		g.drawString("白方时间:无限制", 260, 470);
		for(int i=0;i<19;i++)
		{//前面两个参数表示起点坐标,后面两个参数表示终点坐标(以窗体左上角作为坐标原点)
		   g.drawLine(13, 70+20*i, 372, 70+20*i);//画19条横线
		   g.drawLine(13+20*i,70,13+20*i,430);//画19条竖线
		}	
		g.fillOval(71, 128, 4, 4);//在棋盘中画一些关键点
		g.fillOval(311, 128, 4, 4);
		g.fillOval(311, 368, 4, 4);
		g.fillOval(71, 368, 4, 4);
		g.fillOval(311, 248, 4, 4);
		g.fillOval(191, 128, 4, 4);
		g.fillOval(71, 248, 4, 4);
		g.fillOval(191, 368, 4, 4);
		g.fillOval(191, 248, 4, 4);
	}
	
	@Override
	public void mouseClicked(MouseEvent e)
	{
	

	}

	@Override
	public void mousePressed(MouseEvent e)
	{
	

	}

	@Override
	public void mouseReleased(MouseEvent e)
	{
	

	}

	@Override
	public void mouseEntered(MouseEvent e)
	{
	
	}

	@Override
	public void mouseExited(MouseEvent e)
	{
		

	}

	public static void main(String[] args)
	{
		FiveChessFrame ff = new FiveChessFrame(); 

	}

}

二、 效果展示

原始背景图片


运行后的窗体显示


  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值