程序如下:
import java.awt.*;
import java.awt.event.*;
class ToeButton extends Canvas {
int state=ToeDialog.BLANK;
ToeDialog parent;
ToeButton(ToeDialog parent){
this.parent=parent;
}
public void paint(Graphics g){
int x1=0;
int y1=0;
int x2=size().width-1;
int y2=size().height-1;
g.drawRect(x1,y1,x2,y2);
int wide=x2/2;
int high=y2/2;
if(state==ToeDialog.XX){
g.drawLine(x1,y1,x1+wide,y1+high);
g.drawLine(x1,y1+high,x1+wide,y1);
}
if(state == ToeDialog.OO) {
g.drawOval(x1, y1, x1+wide/2, y1+high/2);
}
}
public boolean mouseDown(Event evt,int x,int y){
if(state==ToeDialog.BLANK){
state=parent.turn;
parent.turn=(parent.turn==ToeDialog.XX?ToeDialog.OO:ToeDialog.XX);
}
else
state=(state==ToeDialog.XX?ToeDialog.OO:ToeDialog.XX);
repaint();
return true;
}
}
class ToeDialog extends Dialog {
static final int BLANK = 0;
static final int XX = 1;
static final int OO = 2;
int turn = XX;
public ToeDialog(Frame parent, int w, int h) {
super(parent, "The game itself", false);
setLayout(new GridLayout(w, h));
for(int i = 0; i < w * h; i++)
add(new ToeButton(this));
//resize(w * 50, h * 50);
setSize(w*50,h*50);
}
public boolean handleEvent(Event evt) {
if(evt.id == Event.WINDOW_DESTROY)
dispose();
else
return super.handleEvent(evt);
return true;
}
}public class ToeTest extends Frame{
TextField rows = new TextField("3");
TextField cols = new TextField("3");
/** Creates a new instance of ToeTest */
public ToeTest() {
setTitle("Toe Test");
Panel p = new Panel();
p.setLayout(new GridLayout(2,2));
p.add(new Label("Rows", Label.CENTER));
p.add(rows);
p.add(new Label("Columns", Label.CENTER));
p.add(cols);
add("North", p);
Button b=new Button("go");
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Dialog d=new ToeDialog(this,Integer.parseInt(rows.getText()),Integer.parseInt(cols.getText()));
d.setVisible(true);
}
});
add("South", b);
/*b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
Dialog d = new ToeDialog(this,Integer.parseInt(rows.getText()),Integer.parseInt(cols.getText()));
d.setVisible(true);
}
});*/
add("South",b);
}
/*public boolean handleEvent(Event evt) {
if(evt.id == Event.WINDOW_DESTROY)
System.exit(0);
else
return super.handleEvent(evt);
return true;
}*/
/*public boolean action(Event evt, Object arg) {
if(arg.equals("go")) {
Dialog d = new ToeDialog(this,Integer.parseInt(rows.getText()),Integer.parseInt(cols.getText()));
//d.show();
d.setVisible(true);
}
else
return super.action(evt, arg);
return true;
}*/
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Frame f = new ToeTest();
f.setSize(200,100);
f.setVisible(true);
f.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
}
编译错误,无法实例对话框.请大家帮我解决这个问题.
第二,请帮我把剩余的老消息机制转换成新的消息机制.
第三,请问size().width是什么意思?编译时说size()已过期,请问可以用什么函数替换?
import java.awt.*;
import java.awt.event.*;
class ToeButton extends Canvas {
int state=ToeDialog.BLANK;
ToeDialog parent;
ToeButton(ToeDialog parent){
this.parent=parent;
}
public void paint(Graphics g){
int x1=0;
int y1=0;
int x2=size().width-1;
int y2=size().height-1;
g.drawRect(x1,y1,x2,y2);
int wide=x2/2;
int high=y2/2;
if(state==ToeDialog.XX){
g.drawLine(x1,y1,x1+wide,y1+high);
g.drawLine(x1,y1+high,x1+wide,y1);
}
if(state == ToeDialog.OO) {
g.drawOval(x1, y1, x1+wide/2, y1+high/2);
}
}
public boolean mouseDown(Event evt,int x,int y){
if(state==ToeDialog.BLANK){
state=parent.turn;
parent.turn=(parent.turn==ToeDialog.XX?ToeDialog.OO:ToeDialog.XX);
}
else
state=(state==ToeDialog.XX?ToeDialog.OO:ToeDialog.XX);
repaint();
return true;
}
}
class ToeDialog extends Dialog {
static final int BLANK = 0;
static final int XX = 1;
static final int OO = 2;
int turn = XX;
public ToeDialog(Frame parent, int w, int h) {
super(parent, "The game itself", false);
setLayout(new GridLayout(w, h));
for(int i = 0; i < w * h; i++)
add(new ToeButton(this));
//resize(w * 50, h * 50);
setSize(w*50,h*50);
}
public boolean handleEvent(Event evt) {
if(evt.id == Event.WINDOW_DESTROY)
dispose();
else
return super.handleEvent(evt);
return true;
}
}public class ToeTest extends Frame{
TextField rows = new TextField("3");
TextField cols = new TextField("3");
/** Creates a new instance of ToeTest */
public ToeTest() {
setTitle("Toe Test");
Panel p = new Panel();
p.setLayout(new GridLayout(2,2));
p.add(new Label("Rows", Label.CENTER));
p.add(rows);
p.add(new Label("Columns", Label.CENTER));
p.add(cols);
add("North", p);
Button b=new Button("go");
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Dialog d=new ToeDialog(this,Integer.parseInt(rows.getText()),Integer.parseInt(cols.getText()));
d.setVisible(true);
}
});
add("South", b);
/*b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
Dialog d = new ToeDialog(this,Integer.parseInt(rows.getText()),Integer.parseInt(cols.getText()));
d.setVisible(true);
}
});*/
add("South",b);
}
/*public boolean handleEvent(Event evt) {
if(evt.id == Event.WINDOW_DESTROY)
System.exit(0);
else
return super.handleEvent(evt);
return true;
}*/
/*public boolean action(Event evt, Object arg) {
if(arg.equals("go")) {
Dialog d = new ToeDialog(this,Integer.parseInt(rows.getText()),Integer.parseInt(cols.getText()));
//d.show();
d.setVisible(true);
}
else
return super.action(evt, arg);
return true;
}*/
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Frame f = new ToeTest();
f.setSize(200,100);
f.setVisible(true);
f.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
}
编译错误,无法实例对话框.请大家帮我解决这个问题.
第二,请帮我把剩余的老消息机制转换成新的消息机制.
第三,请问size().width是什么意思?编译时说size()已过期,请问可以用什么函数替换?
解决方案 »
- ictclas4j问题
- 大家帮我看看TCP通信的代码来··· 郁闷。
- 八个J2EE的高级群,按层次划分,共享教程代码,期待各位朋友加入(需考试)
- 请大大们帮我解决一下菜鸟问题
- 关于java中clone()方法的问题
- 悬赏寻找改程序达人
- 初学者的问题--- 关于事件处理
- UTF-8再问: 把.java文件的编码格式变成UTF-8后,编译不通过, 怎么办?
- 结构化文档全文索引的使用方式,以DB2 TIE为例,讲解一下结构化文档的全文索引的使用方法,希望对我的另一个帖子起到抛砖引玉的作用。
- 求助!帮忙看一下!
- 求助!判断单词个数
- 我两次强制抛出例外!可是SPRING事务并没有回滚!不知道为什么啊!SPRING事物回滚问题
Dialog d=new ToeDialog(this,Integer.parseInt(rows.getText()),Integer.parseInt(cols.getText()));
=======>Dialog d=new ToeDialog(ToeTest.this,Integer.parseInt(rows.getText()),Integer.parseInt(cols.getText()));