一、代碼實作
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();
}
}
二、 效果展示
原始背景圖檔
運作後的窗體顯示