重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
import java.awt.Color;
我们注重客户提出的每个要求,我们充分考虑每一个细节,我们积极的做好网站建设、成都做网站服务,我们努力开拓更好的视野,通过不懈的努力,创新互联公司赢得了业内的良好声誉,这一切,也不断的激励着我们更好的服务客户。 主要业务:网站建设,网站制作,网站设计,成都小程序开发,网站开发,技术开发实力,DIV+CSS,PHP及ASP,ASP.Net,SQL数据库的技术开发工程师。
import javax.swing.*;
public class Chess extends JPanel
{// 继承面板类
public Chess(int grids,int gridsize)
{//grids:行数和列数, gridsize:单元格的高和宽
super(null);
for(int i=0; igrids; i++)
{
for(int j=0; jgrids; j++)
{
JLabel l = new JLabel();//生成标签实例
l.setSize(gridsize,gridsize);
l.setLocation(i*gridsize,j*gridsize);
if((i+j)%2==0)
{ //当小方格的坐标和刚好是偶数时,
l.setBackground(Color.black); //设置为方格为黑色
l.setOpaque(true); //设置为不透明
}
l.setBorder(BorderFactory.createLineBorder(Color.black)); //设置边界为黑色
add(l);//将l标签添加到面板
}
}
}
public static void main(String[] args)
{
JFrame f = new JFrame();
f.setSize(658,677); //边框的长和宽
f.setLocationRelativeTo(null); //设置窗口相对于指定组件的位置
f.add(new Chess(8,80));
f.setVisible(true);
}
}
package com.fzhw.app;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.HeadlessException;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Xiangqi extends JFrame{
private static final long serialVersionUID = 1;
public Xiangqi() throws HeadlessException {
super();
setTitle("my board");
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(new Board(), BorderLayout.CENTER);
this.setSize(960, 960);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]){
new Xiangqi().setVisible(true);
}
}
class Board extends JPanel{
private static final long serialVersionUID = 1L;
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d=(Graphics2D)g;
int width=this.getWidth();
int height=this.getHeight();
int hGap=height/9;
int wGap=width/8;
for(int i=0;i10;i++){
g2d.drawLine(0, i*hGap, width, i*hGap);
}
for(int i=0;i9;i++){
g2d.drawLine(i*wGap, 0, i*wGap, 4*hGap);
g2d.drawLine(i*wGap, 5*hGap, i*wGap, height);
}
g2d.drawString("楚河 汉界", width/2, height/2);
g2d.drawLine(3*wGap, 0, 5*wGap, 2*hGap);
g2d.drawLine(5*wGap, 0, 3*wGap, 2*hGap);
g2d.drawLine(3*wGap, height, 5*wGap, height-2*hGap);
g2d.drawLine(3*wGap, height-2*hGap, 5*wGap, height);
g2d.dispose();
}
}
两种选择,第一,你用一个背景图片来充当欺骗,落子位置的在panel上转化,楚河汉界不用管,两边是对称的。
第二种,用Graphics2D自己draw line。
我给你写好了,但是10分太少,不想给啊
import java.awt.*;
import javax.swing.*;
public class Chessboard extends JApplet {
int baseXPosition, baseYPosition;
int currentXPosition, currentYPosition;
public void init() {
baseXPosition = 40; // 棋盘的开始x位置
baseYPosition = 40; // 棋盘的开始y位置
setBackground(Color.black); // 设置背景颜色黑色
}
public void paint(Graphics g) { // 绘制棋盘
currentXPosition = baseXPosition; // currentXPosition当前的x位置
currentYPosition = baseYPosition; // currentYPosition当前的y位置
for (int row = 0; row 8; row++) {
currentXPosition = baseXPosition + row * 40;
for (int column = 0; column 8; column++) {
if ((column + row) % 2 == 0)
g.setColor(Color.white); // 设置棋盘格子的颜色
else
g.setColor(Color.red); // 设置棋盘格子的颜色
currentYPosition = baseXPosition + column * 40;
g.drawRect(currentXPosition,currentYPosition,40,40);//;代码4 //在当前位置绘制棋盘的格子;每个格子的大小是40*40像
g.fillRect(currentXPosition,currentYPosition,40,40);
}
}
}
}