忽略文本是瑞典语的事实(如果可以的话)。
问题在于,当我运行程序时,我按下#34;是"在弹出的前两个问题中,第一个if语句工作正常,但每当我按下时,例如" yes"然后"不",没有任何反应,我认为这是因为其他if语句是在第一个if语句之后,所以它就像在第一个if语句之后跳过那些语句,我真的很感激一些帮助。
import javax.swing.JOptionPane;
public class Slutuppgift extends javax.swing.JFrame {
public Slutuppgift() {
initComponents();
}
Object[] options = {"Osäker",
"Nej",
"Ja"};
int svar_1 = JOptionPane.showOptionDialog(null,
"Är bilden tagen i europa? "
,
"Fråga 1",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options, null);
int svar_2 = JOptionPane.showOptionDialog(null,
"Är det vatten med i bilden?"
,
"Fråga 2",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options, null);
if (svar_1 == 1 && svar_2 == 1){
int svar_3 = JOptionPane.showOptionDialog(null,
"Är platsen på bilden associerad med hasardspel?"
,
"Fråga 3",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options, null);
if (svar_3 == 2)
JOptionPane.showMessageDialog(null,"Du tänkte på Vita Huset");
}
else if (svar_3 == 1){
JOptionPane.showMessageDialog(null,"Du tänkte på Las Vegas");
}
else if (svar_3 == 0){
JOptionPane.showMessageDialog(null,"Du tänkte inte på någon bild alls, du klickar bara på osäker");
}
else if (svar_1 == 2 && svar_2 == 1){
int svar_4 = JOptionPane.showOptionDialog(null,
"Är det mycket grönska på bilden?"
,
"Fråga 3",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options, null);
if (svar_4 == 2){
int svar_5 = JOptionPane.showOptionDialog(null,
"Finns det moln på bilden?"
,
"Fråga 4",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options, null);
if(svar_5 == 2){
JOptionPane.showMessageDialog(null,"Du tänkte på Eiffeltornet");
}
else if (svar_5 == 1){
JOptionPane.showMessageDialog(null,"Du tänkte på lutande tornet i Pisa");
}
}
else if (svar_1 == 1 && svar_2 == 2){
int svar_6 = JOptionPane.showOptionDialog(null,
"Är platsen associerad med musik?"
,
"Fråga 3",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options, null);
}
else if (svar_1 == 2 && svar_2 == 2){
int svar_7 = JOptionPane.showOptionDialog(null,
"Är byggnaden gammal?"
,
"Fråga 3",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options, null);
int svar_6 = 0;
if (svar_7 == 2){
JOptionPane.showMessageDialog(null,"Du tänkte på Big Ben");
}
else if (svar_7 == 1){
JOptionPane.showMessageDialog(null,"Du tänkte på Turning Torso");
}
}
private void bild1MouseClicked(java.awt.event.MouseEvent evt) {
}
public static void main(String args[]) {
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Slutuppgift.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Slutuppgift.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Slutuppgift.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Slutuppgift.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Slutuppgift().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel bild1;
private javax.swing.JLabel bild2;
private javax.swing.JLabel bild3;
private javax.swing.JLabel bild4;
private javax.swing.JLabel bild5;
private javax.swing.JLabel bild6;
private javax.swing.JLabel bild7;
private javax.swing.JLabel bild8;
private javax.swing.JLabel bild9;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel välj;
// End of variables declaration
}
答案 0 :(得分:0)
安排if大括号的问题 - &gt; }&lt; - 。
看起来是一个很好的调试器 首先只保留一个“if”并剪切其他代码(备份文件后)。 测试是否按计划运行。 使用一些代码再过一次“如果”。 测试也没关系 等等。
通过这种方式,你的技能将从程序员发展成为我的朋友的开发人员。 并继续工作并继续跟踪。