for (int j = 0; j < 4; j++) {// the action of click on every answer button. final int index = j; answerButtons[index].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { rightanswer = getAnswer(i); i++; next.setEnabled(true); if (answerButtons[index].getText().equals(rightanswer)) { right++; score.setText(right + "/" + i); show.setText("correct!"); answerButtons[index].setBackground(Color.green);// if it is true, it will turns green. } else { show.setText("wrong"); score.setText(right + "/" + i); answerButtons[index].setBackground(Color.pink); } enabled(false);// users can't click on the other button instead of they click on the next // button. rightanswer = getAnswer(i);// refresh the answer. next.setEnabled(true); } }); }怎么让选择错误答案之后正确答案变绿
时间: 2024-01-18 13:02:55 浏览: 35
在这段代码中,如果用户选择了错误的答案,程序会将这个答案按钮的背景色设为粉色。如果用户选择了正确的答案,程序会将这个答案按钮的背景色设为绿色。如果想让选择错误答案之后正确答案变绿,可以将这两个操作交换一下位置,即将 `answerButtons[index].setBackground(Color.pink);` 和 `answerButtons[index].setBackground(Color.green);` 的位置互换一下。这样,如果用户选择了错误答案,程序会先将这个答案按钮的背景色设为粉色,然后在处理完正确答案的相关逻辑后,再将正确答案的按钮的背景色设为绿色。
相关问题
#include <bits/stdc++.h> using namespace std; int n , m , sum; int x , y , z; char ch[20][20]; int dx[8]={1,-1,0,0,1,1,-1,-1}; //八个方向 int dy[8]={0,0,1,-1,-1,1,-1,1}; int main() { cin>>sum; for(int i=0;i<sum;i++) { cin>>n>>m; for(int j=1;j<=n;j++) for(int k=1;k<=m;k++) { cin>>ch[j][k]; } for(int j=1;j<=n;j++) { for(int k=1;k<=m;k++) { int coun=0; if(ch[j][k]=='*') cout<<'*'; //遇到雷直接输出 else { for(int l=0;l<8;l++) //遇到无雷则找八个方向有雷则加一 if(ch[j+dx[l]][k+dy[l]]=='*') coun++; cout<<coun; } } cout<<endl; } if(i!=sum-1) cout<<endl; for(int j=0;j<20;j++) //一轮结束后将字符数组重置 for(int k=0;k<20;k++) ch[j][k]='\0'; } return 0; }将这个c++的代码改为c语言的代码
很好,我来帮你把这段 C++ 代码改成 C 语言代码:
```c
#include <stdio.h>
int n, m, sum;
int x, y, z;
char ch[20][20];
int dx[8] = {1, -1, 0, 0, 1, 1, -1, -1}; //八个方向
int dy[8] = {0, 0, 1, -1, -1, 1, -1, 1};
int main() {
scanf("%d", &sum);
for (int i = 0; i < sum; i++) {
scanf("%d%d", &n, &m);
for (int j = 1; j <= n; j++) {
for (int k = 1; k <= m; k++) {
scanf(" %c", &ch[j][k]);
}
}
for (int j = 1; j <= n; j++) {
for (int k = 1; k <= m; k++) {
int coun = 0;
if (ch[j][k] == '*') {
printf("*");
} else {
for (int l = 0; l < 8; l++) { //遇到无雷则找八个方向有雷则加一
if (ch[j + dx[l]][k + dy[l]] == '*') {
coun++;
}
}
printf("%d", coun);
}
}
printf("\n");
}
if (i != sum - 1) {
printf("\n");
}
for (int j = 0; j < 20; j++) { //一轮结束后将字符数组重置
for (int k = 0; k < 20; k++) {
ch[j][k] = '\0';
}
}
}
return 0;
}
```
改动的主要部分是 `cin` 和 `cout` 改成了 `scanf` 和 `printf`,此外在读取字符数组时需要注意使用 `%c` 格式化符号,并且要在前面加上一个空格,以避免读入多余的换行符。
#include <iostream> #include <cstring> #include <algorithm> #include <vector> using namespace std; const int N = 10; int n, m; int a[N]; int main() { cout << "请输入结点数:" << endl; while (cin >> n >> m) //输入图1、2的结点数 { if (m != n) { cout << "两图不同构!!!" << endl; continue; } //根据结点数n、m,动态生成两个二维数组来存图(使用邻接矩阵的方式) vector<int> w1(n + 1, 0); vector<vector<int> > g1(n + 1, w1); vector<int> w2(m + 1, 0); vector<vector<int> > g2(m + 1, w2); for (int i = 1; i <= n; i++) a[i] = i; //初始化a数组 for (int i = 1; i <= n; i++) //输入图1的邻接矩阵 for (int j = 1; j <= n; j++) cin >> g1[i][j]; for (int i = 1; i <= m; i++) //输入图2的邻接矩阵 for (int j = 1; j <= m; j++) cin >> g2[i][j]; //全排列 do { bool f = 0; int temp[N][N]; memset(temp, 0, sizeof temp); for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { temp[i][j] = g1[a[i]][a[j]]; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if (temp[i][j] != g2[i][j]) { f = 1; break; } } if (f == 1) break; } if (f == 0) cout << "两图同构^-^" << endl; } while (next_permutation(a + 1, a + 1 + n)); cout << "两图不同构!!!" << endl; } return 0; }简化的完整代码
这是一个判断两个图是否同构的程序,输入两个图的邻接矩阵,通过枚举两个图的节点的排列顺序,判断它们是否同构。如果是同构的,则输出"两图同构^-^",否则输出"两图不同构!!!"。
```cpp
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
const int N = 10;
int n, m;
int a[N];
int main() {
cout << "请输入结点数:" << endl;
while (cin >> n >> m) { //输入图1、2的结点数
if (m != n) {
cout << "两图不同构!!!" << endl;
continue;
}
//根据结点数n、m,动态生成两个二维数组来存图(使用邻接矩阵的方式)
vector<int> w1(n + 1, 0);
vector<vector<int> > g1(n + 1, w1);
vector<int> w2(m + 1, 0);
vector<vector<int> > g2(m + 1, w2);
for (int i = 1; i <= n; i++) a[i] = i; //初始化a数组
for (int i = 1; i <= n; i++) //输入图1的邻接矩阵
for (int j = 1; j <= n; j++)
cin >> g1[i][j];
for (int i = 1; i <= m; i++) //输入图2的邻接矩阵
for (int j = 1; j <= m; j++)
cin >> g2[i][j];
//全排列
do {
bool f = 0;
int temp[N][N];
memset(temp, 0, sizeof temp);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
temp[i][j] = g1[a[i]][a[j]];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (temp[i][j] != g2[i][j]) {
f = 1;
break;
}
}
if (f == 1) break;
}
if (f == 0) cout << "两图同构^-^" << endl;
} while (next_permutation(a + 1, a + 1 + n));
cout << "两图不同构!!!" << endl;
}
return 0;
}
```