import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import java.io.*;public class chess {
static JFrame f = new JFrame("Test DrawLine!");
public chess() {
super();
}
static int tile=0;
public static void main(String[] args) {
int n=0;
int r=0,c=0;
System.out.println("please input num");
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader( isr );
try {
n = Integer.parseInt(br.readLine());
} catch (NumberFormatException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} catch(ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}
System.out.println("please input r and c");
try {
r = Integer.parseInt(br.readLine());
c = Integer.parseInt(br.readLine());
} catch (NumberFormatException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} catch(ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}
chess ch=new chess();
ch.init(n);
ChessBoard(1,1,r, c,n);
}//end main
private void init(int num) {
final int n=num; //必须是final
f.setSize(600,500);
f.setVisible(true);
f.addMouseListener(new MouseAdapter(){
int orgX;
int orgY;
public void mousePressed(MouseEvent e){
orgX = 50;
orgY = 50;
}
public void mouseReleased(MouseEvent e){
Graphics g = f.getGraphics();
g.setColor(Color.RED); //设置绘图颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); //设置文本字体
g.drawString(new String(orgX+","+orgY),orgX,orgY);
//打印鼠标按下时的坐标文本
for(int i=0;i<=n;i++)
{
g.drawLine(orgX,orgY+i*30,orgX+30*n,orgY+i*30);
}
for(int j=0;j<=n;j++)
{
g.drawLine(orgX+j*30,orgY,orgX+30*j,orgY+n*30);
} }
}//end addMouseListener
);
}//end init static void ChessBoard(int tr,int tc,int dr, int dc,int s)
{
/*int size=s;
if(size==1);
else{
int t = tile++;
s=size/2;
if(dr<tr+s&&dc<tr+s)
ChessBoard(tr,tc,dr,dc,s);
else{
Graphics g = f.getGraphics();
g.setColor(Color.BLACK); //设置绘图颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); //设置文本字体
g.drawString(new
String(""+tile),50+(tr+s-1)*30-15,50+(tc+s-1)*30-15);
ChessBoard(tr,tc,tr+s-1,tc+s-1,s);
} if(dr<tr+s&&dc>=tc+s) ChessBoard(tr,tc+s,dr,dc,s);
else{
Graphics g = f.getGraphics();
g.setColor(Color.BLACK); //设置绘图颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); //设置文本字体
g.drawString(new
String(""+tile),50+(tr+s-1)*30-15,50+(tc+s)*30-15);
ChessBoard(tr,tc+s,tr+s-1,tc+s,s);
} if(dr>=tr+s&&dc<tc+s) ChessBoard(tr+s,tc,dr,dc,s);
else{
Graphics g = f.getGraphics();
g.setColor(Color.BLACK); //设置绘图颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); //设置文本字体
g.drawString(new
String(""+tile),50+(tr+s)*30-15,50+(tc+s-1)*30-15);
ChessBoard(tr+s,tc,tr+s,tc+s-1,s);
} if(dr>=tr+s&&dc>=tc+s) ChessBoard(tr+s,tc+s,dr,dc,s);
else{
Graphics g = f.getGraphics();
g.setColor(Color.BLACK); //设置绘图颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); //设置文本字体
g.drawString(new String(""+tile),50+(tr+s)*30-15,50+(tc+s)*30-15);
ChessBoard(tr+s,tc+s,tr+s,tc+s,s);
}*/
Graphics g = f.getGraphics();
System.out.println("GET G END");
g.setColor(Color.RED); //设置绘图颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); //设置文本字体
g.drawString(new String("DHJFHKJHK"+tile),50,50);
System.out.println("FA END");
}
}
为什么ChessBoard()方法画不上去????
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import java.io.*;public class chess {
static JFrame f = new JFrame("Test DrawLine!");
public chess() {
super();
}
static int tile=0;
public static void main(String[] args) {
int n=0;
int r=0,c=0;
System.out.println("please input num");
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader( isr );
try {
n = Integer.parseInt(br.readLine());
} catch (NumberFormatException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} catch(ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}
System.out.println("please input r and c");
try {
r = Integer.parseInt(br.readLine());
c = Integer.parseInt(br.readLine());
} catch (NumberFormatException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} catch(ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}
chess ch=new chess();
ch.init(n);
ChessBoard(1,1,r, c,n);
}//end main
private void init(int num) {
final int n=num; //必须是final
f.setSize(600,500);
f.setVisible(true);
f.addMouseListener(new MouseAdapter(){
int orgX;
int orgY;
public void mousePressed(MouseEvent e){
orgX = 50;
orgY = 50;
}
public void mouseReleased(MouseEvent e){
Graphics g = f.getGraphics();
g.setColor(Color.RED); //设置绘图颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); //设置文本字体
g.drawString(new String(orgX+","+orgY),orgX,orgY);
//打印鼠标按下时的坐标文本
for(int i=0;i<=n;i++)
{
g.drawLine(orgX,orgY+i*30,orgX+30*n,orgY+i*30);
}
for(int j=0;j<=n;j++)
{
g.drawLine(orgX+j*30,orgY,orgX+30*j,orgY+n*30);
} }
}//end addMouseListener
);
}//end init static void ChessBoard(int tr,int tc,int dr, int dc,int s)
{
/*int size=s;
if(size==1);
else{
int t = tile++;
s=size/2;
if(dr<tr+s&&dc<tr+s)
ChessBoard(tr,tc,dr,dc,s);
else{
Graphics g = f.getGraphics();
g.setColor(Color.BLACK); //设置绘图颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); //设置文本字体
g.drawString(new
String(""+tile),50+(tr+s-1)*30-15,50+(tc+s-1)*30-15);
ChessBoard(tr,tc,tr+s-1,tc+s-1,s);
} if(dr<tr+s&&dc>=tc+s) ChessBoard(tr,tc+s,dr,dc,s);
else{
Graphics g = f.getGraphics();
g.setColor(Color.BLACK); //设置绘图颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); //设置文本字体
g.drawString(new
String(""+tile),50+(tr+s-1)*30-15,50+(tc+s)*30-15);
ChessBoard(tr,tc+s,tr+s-1,tc+s,s);
} if(dr>=tr+s&&dc<tc+s) ChessBoard(tr+s,tc,dr,dc,s);
else{
Graphics g = f.getGraphics();
g.setColor(Color.BLACK); //设置绘图颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); //设置文本字体
g.drawString(new
String(""+tile),50+(tr+s)*30-15,50+(tc+s-1)*30-15);
ChessBoard(tr+s,tc,tr+s,tc+s-1,s);
} if(dr>=tr+s&&dc>=tc+s) ChessBoard(tr+s,tc+s,dr,dc,s);
else{
Graphics g = f.getGraphics();
g.setColor(Color.BLACK); //设置绘图颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); //设置文本字体
g.drawString(new String(""+tile),50+(tr+s)*30-15,50+(tc+s)*30-15);
ChessBoard(tr+s,tc+s,tr+s,tc+s,s);
}*/
Graphics g = f.getGraphics();
System.out.println("GET G END");
g.setColor(Color.RED); //设置绘图颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); //设置文本字体
g.drawString(new String("DHJFHKJHK"+tile),50,50);
System.out.println("FA END");
}
}
为什么ChessBoard()方法画不上去????
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import java.io.*;public class chess2 {
static JFrame f = new JFrame("Test DrawLine!");
public chess2() {
super();
}
static int tile=0;
public static void main(String[] args) {
int n=0;
int r=0,c=0;
System.out.println("please input num");
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader( isr );
try {
n = Integer.parseInt(br.readLine());
} catch (NumberFormatException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} catch(ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}
System.out.println("please input r and c");
try {
r = Integer.parseInt(br.readLine());
c = Integer.parseInt(br.readLine());
} catch (NumberFormatException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} catch(ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}
chess2 ch=new chess2();
ch.init(n);
// ChessBoard(1,1,r, c,n);
}//end main
private void init(int num) {
final int n=num; //必须是final
f.setSize(600,500);
f.setVisible(true);
Graphics g = f.getGraphics();
g.setColor(Color.RED); //设置绘图颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); //设置文本字体
g.drawString("(50,50)",50,50);
//打印鼠标按下时的坐标文本
for(int i=0;i<=n;i++)
{
g.drawLine(50,50+i*30,50+30*n,50+i*30);
}
for(int j=0;j<=n;j++)
{
g.drawLine(50+j*30,50,59+30*j,50+n*30);
}
}//end init
}
有变动,如大小改变时,在repaint()事件中更新.