五子棋1.0

五子棋1.0

一、学习代码:

package com.qq;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
public class FI extends JFrame {
    int width=Toolkit.getDefaultToolkit().getScreenSize().width;
    int height=Toolkit.getDefaultToolkit().getScreenSize().height;
    int[][] allChess=new int[15][15];
    boolean isblack=true;
    boolean canPlay=true;
    String message="黑方先行";
    String blackMessage="无限制";
    String whiteMessage="无限制";
    public FI(){
        this.setTitle("五子棋1.0");
        this.setSize(500,500);
        this.setLocation((width-500)/2,(height-500)/2);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setResizable(false);
        this.setVisible(true);
        this.repaint();/*如果该组件为轻量级组件,则优先调用该组件,否则,将调用此组件的更新方法*/
    }
public void paint(Graphics g){
        BufferedImage buf=new BufferedImage(500,500,BufferedImage.TYPE_INT_RGB);//宽、高、设置不透明
        Graphics g1=buf.createGraphics();//给图片设置坐标
        g1.setColor(new Color(0,169,158));
        g1.fill3DRect(43,60,375,375,true);//将颜色填满图片
        for(int i=0;i<=15;i++){
            g1.setColor(Color.WHITE);
            g1.drawLine(43,60+i*25,375+43,60+i*25);
            g1.drawLine(43+i*25,60,43+i*25,375+60);
        }
        g1.setFont(new Font("黑体",Font.BOLD,200));//设置字体
        g1.drawString("游戏信息:"+message,50,50);
        g1.drawRect(30,440,180,40);//绘制路径
        g1.drawRect(250,440,180,40);
        g1.setFont(new Font("宋体",0,12));
        g1.drawString("黑方时间:"+blackMessage,40,465);
        g1.drawString("白方时间:"+whiteMessage,260,465);
        g1.drawRect(430,66,55,20);
        g1.drawString("重新开始",432,80);
        g1.drawRect(430,106,55,20);
        g1.drawString("游戏设置",432,120);
        g1.drawRect(430,146,55,20);
        g1.drawString("游戏说明",432,160);
        g1.drawRect(430,186,55,20);
        g1.drawString("退出游戏",432,200);
        g1.drawRect(430,246,55,20);
        g1.drawString("悔棋",442,260);
        g1.drawRect(430,286,55,20);
        g1.drawString("认输",442,300);
        g.drawImage(buf,0,0,this);
}
public static void main(String[] args){
        new FI();
}
}

二、知识学习:

  • import java.awt.*;

抽象窗口工具集

当利用AWT编写**图形用户界面时,实际上时在利用本地操作系统所提供的图形库。由于不同操作系统的图形库所提供的样式与功能不同,所以AWT所提供的图形功能是各种操作系统所提供的图形功能的交集**。

Component组件

Component
Button
Canvas画布
Container容器
ScrollPane滚动条
Panel面板
Applet小程序
Window
Frame构架
Dialong会话
List项目条
Checkbox复选框
Choice下拉选项框
TextComponent
TextField单行文本框
TextArea多行文本框
Scrollbar滑动条
基本组件:
组件名功能
Button按钮
Canvas用于绘画的画布
Checkbox复选框组件
CheckboxGroup用于将多个Checkbox 组件组合成一组, 一组 Checkbox 组件将只有一个可以 被选中 , 即全部变成单选框组件
Choice下拉选择框
Frame窗口 , 在 GUI 程序里通过该类创建窗口
Label标签类,用于放置提示性文本
ListJU表框组件,可以添加多项条目
Panel不能单独存在基本容器类,必须放到其他容器中
Scrollbar滑动条组件。如果需要用户输入位于某个范围的值 , 就可以使用滑动条组件 ,比如调 色板中设置 RGB 的三个值所用的滑动条。当创建一个滑动条时,必须指定它的方向、初始值、 滑块的大小、最小值和最大值。
ScrollPane带水平及垂直滚动条的容器组件
TextArea多行文本域
TextField单行文本框
  • import java.awt.Toolkit;

Toolkit可以获得本机系统的屏幕的参数。具有把行图形数据转换为可显示的图像、返回字体信息、得出显示尺寸和分辨率以及获得系统属性信息的方法。

  • import java.awt.Graphics;

Graphics图像坐标系。坐标位于像素之间,描绘轮廓(四周边界)的操作,Graphics .drawRect(2,2,4,4),用一支画笔沿着坐标路径移动,由于画笔的尺寸通常为一个像素的高和一个像素的宽,使得实际绘制出的矩形的宽和高比设置多一个像素。eg:从(2,2)开始,向右4 (6,2),向下4 (6,6),向左4 (2,6),向上4 (2,2)。**Graphics.fillRect ()**填充形状。

  • import java.awt.image.BufferedImage;

Image是一个抽象类,BufferedImage是其实现类,是一个带缓冲区图像类,主要作用是将一幅图片加载到内存中(BufferedImage生成的图片在内存里有一个图像缓冲区,利用这个缓冲区我们可以很方便地操作这个图片),提供获得绘图对象、图像缩放、选择图像平滑度等功能,通常用来做图片大小变换、图片变灰BufferdImage.TYPE_BYTE_GRAY、设置不透明BufferdImage.TYPE_INT_RGB、设置透明BufferdImage.TYPE_INT_ARGB

  • import javax.swing.JFrame;

    swing是图形可视包,导入这个包后才能进行GUI图形化软件的开发。Swing 的三个基本构造块:标签、按钮和文本字段;但是需要个地方安放它们。

    JFrame是一个顶层的框架类,好比一个窗户的框子。也是一个容器类。这个框子可以嵌入几个玻璃窗。允许把其他组件添加到它里面,把它们组织起来,并把它们呈现出来。为了最大程度地简化组件,在独立于操作系统的 Swing 组件与实际运行这些组件的操作系统之间,JFrame 起着桥梁的作用。JFrame 在本机操作系统中是以窗口的形式注册的,这么做之后,就可以得到许多熟悉的操作系统窗口的特性:最小化/最大化、改变大小、移动。

    设置窗口:

     public FI(){
            this.setTitle("五子棋1.0");
            this.setSize(500,500);
            this.setLocation((width-500)/2,(height-500)/2);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setResizable(false);
            this.setVisible(true);
            this.repaint();/*如果该组件为轻量级组件,则优先调用该组件,否则,将调用此组件的更新方法*/
        }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值