我正在用 java swt 编写一个播放井字游戏的程序,但如果不使用 button.setImage(image) 方法,我找不到在按钮上显示带有 x 或 o 的图像的方法。当我这样做时,图像会变灰,我不希望这样。有什么办法可以做到,所以当我单击按钮时,按钮会被禁用并且图像会显示在它上面,或者我至少可以让按钮在禁用时不灰显吗?
还应该注意的是,我在我的 GUI 中使用了 SWT。
如果有任何帮助,这是我遇到问题的代码部分:
public static void drawX(Button b, Shell s, Image x){ //draws an X image
int topLeft_X=b.getLocation().x;
int topLeft_Y=b.getLocation().y;
GC gc = new GC(b);
gc.drawImage(x, topLeft_X, topLeft_Y);
}
public static void drawO(Button b, Shell s, Image o){ //draws an O image
int topLeft_X=b.getLocation().x;
int topLeft_Y=b.getLocation().y;
GC gc = new GC(b);
gc.drawImage(o, topLeft_X, topLeft_Y);
}
static double turnCount = 1;
public static void button(final Button b, final Shell s, final int i, final int j, final Image g, final Image h){ //the method that would make the image appear
b.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
b.setEnabled(false);
turnCount++;
if(p1()){
a[i][j]++;
drawX(b, s, g);
b.setVisible(false);
}
else{
a[i][j]--;
drawX(b, s, h);
b.dispose();
}
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
}