天天看點

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(); 

	}

}
           

二、 效果展示

原始背景圖檔

java-----五子棋小遊戲(一)-----背景圖檔制作

運作後的窗體顯示

java-----五子棋小遊戲(一)-----背景圖檔制作