JButton 动作事件动作监听器
JButton ActionEvent ActionListener
如何控制两个JButton的actionListener先后按下?
我有 2 个 JPanel。在每个 JPanel 中,我都有一个名为 tUsuari 和 tUsuariCPU
的 JButton 矩阵
void actionPerformed(ActionEvent){
/****//
for (int i=0;i<tUsuari.length;i++){
for (int j=0;j<tUsuari.length;j++ ){
if (e.getSource()==tUsuari[i][j]){
System.out.println("hello");
for (int r=0;r<tUsuariCPU.length;r++){
for (int s=0;s<tUsuariCPU.length;s++ ){
if (e.getSource()==tUsuariCPU[r][s]){
System.out.println("bye");
parent.provaAtac(i,j,r,s);
}
}
}
}
}
}
}
当我从 tUsuari 按下 JButton 时它打印 "hello",然后我从另一个面板按下 JButton 它不打印 "bye"。
为什么有这么多嵌套循环?分成 2 部分并分别填充面板...另外,该方法在做什么:parent.provaAtac(i,j,r,s);
?
for (int i=0;i<tUsuari.length;i++){
for (int j=0;j<tUsuari.length;j++ ){
if (e.getSource()==tUsuari[i][j]){
System.out.println("hello berlin");
}
}
}
for (int r=0;r<tUsuariCPU.length;r++){
for (int s=0;s<tUsuariCPU.length;s++ ){
if (e.getSource()==tUsuariCPU[r][s]){
System.out.println("bye madrid");
}
}
}
你的逻辑是错误的。如果e.getSource()==tUsuari[i][j],是的,你确实打印出了"Hello"。但是,如果该条件为真,则 e.getSource()==tUsuariCPU[r][s] 不可能为真,因为 e.getSource 不能同时是您的 tUsari 按钮和你的 tUsuariCPU 按钮。相反,如果您按下 CPU 按钮,您将无法通过第一次检查,因为它是 tUsuari 按钮,因此永远不会检查 CPU 按钮。我建议创建两个不同的 actionListener,每个按钮一个,执行您希望特定按钮执行的操作。
如何控制两个JButton的actionListener先后按下?
我有 2 个 JPanel。在每个 JPanel 中,我都有一个名为 tUsuari 和 tUsuariCPU
的 JButton 矩阵 void actionPerformed(ActionEvent){
/****//
for (int i=0;i<tUsuari.length;i++){
for (int j=0;j<tUsuari.length;j++ ){
if (e.getSource()==tUsuari[i][j]){
System.out.println("hello");
for (int r=0;r<tUsuariCPU.length;r++){
for (int s=0;s<tUsuariCPU.length;s++ ){
if (e.getSource()==tUsuariCPU[r][s]){
System.out.println("bye");
parent.provaAtac(i,j,r,s);
}
}
}
}
}
}
}
当我从 tUsuari 按下 JButton 时它打印 "hello",然后我从另一个面板按下 JButton 它不打印 "bye"。
为什么有这么多嵌套循环?分成 2 部分并分别填充面板...另外,该方法在做什么:parent.provaAtac(i,j,r,s);
?
for (int i=0;i<tUsuari.length;i++){
for (int j=0;j<tUsuari.length;j++ ){
if (e.getSource()==tUsuari[i][j]){
System.out.println("hello berlin");
}
}
}
for (int r=0;r<tUsuariCPU.length;r++){
for (int s=0;s<tUsuariCPU.length;s++ ){
if (e.getSource()==tUsuariCPU[r][s]){
System.out.println("bye madrid");
}
}
}
你的逻辑是错误的。如果e.getSource()==tUsuari[i][j],是的,你确实打印出了"Hello"。但是,如果该条件为真,则 e.getSource()==tUsuariCPU[r][s] 不可能为真,因为 e.getSource 不能同时是您的 tUsari 按钮和你的 tUsuariCPU 按钮。相反,如果您按下 CPU 按钮,您将无法通过第一次检查,因为它是 tUsuari 按钮,因此永远不会检查 CPU 按钮。我建议创建两个不同的 actionListener,每个按钮一个,执行您希望特定按钮执行的操作。