如何用java swing 实现中国象棋的棋盘。棋盘就好。。。

关键代码能不能写出来。。。... 关键代码能不能写出来。。。 展开
 我来答
alexmao4
2014-07-09 · TA获得超过1741个赞
知道大有可为答主
回答量:2350
采纳率:50%
帮助的人:462万
展开全部

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;i<10;i++){

g2d.drawLine(0, i*hGap, width, i*hGap);

}

for(int i=0;i<9;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分太少,不想给啊

追问
我用applet也画好了。用swing的时候出了点问题没有解决。。。
呼哈嘿吼呵Cf
2014-07-09 · TA获得超过210个赞
知道小有建树答主
回答量:335
采纳率:0%
帮助的人:208万
展开全部
直接附加图片就好了,棋子的摆放你就算一下长和宽
http://www.cnblogs.com/SCAU_que/articles/1752677.html 参考下这个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式