私は、tic tac toeを実行する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) {
}
});
}
これを行う方法があるかもしれませんが、わかりませんが、代わりにボタンを削除/非表示にして、その場所に 'JLabel'を置くことができます。 – twain249