Java程序不会运行,我不知道什么是错的

时间:2012-02-07 19:34:18

标签: java swing jframe actionlistener

我一直在试图弄清楚为什么我试图运行的这个Java程序不会这样做。它还没有完成,但我只是想确保我按照我希望的方式获得所有GUI方面。无论我做什么,Netbeans都不会告诉我最新情况,但它会运行其他程序。

package TheGameCorner;

import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;

public class HeartAndSoul extends JFrame implements ActionListener 
{
 Random rand = new Random();

 int bombs = 13; 
 int newBombCheck = 0;
 int bombX, bombY;
 String bombCarrier;
 String bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen;
 int gameOver = 0;
 int scoreVal = 0, colOneVal = 0, colTwoVal = 0, colThreeVal = 0, colFourVal = 0, colFiveVal = 0, rowOneVal = 0, rowTwoVal = 0, rowThreeVal = 0, rowFourVal = 0, rowFiveVal = 0;
 String oneOneVal = "oneOne", oneTwoVal = "oneTwo", oneThreeVal = "oneThree", oneFourVal = "oneFour", oneFiveVal = "oneFive";
 String twoOneVal = "twoOne", twoTwoVal = "twoTwo", twoThreeVal = "twoThree", twoFourVal = "twoFour", twoFiveVal = "twoFive";
 String threeOneVal = "threeOne", threeTwoVal = "threeTwo", threeThreeVal = "threeThree", threeFourVal = "threeFour", threeFiveVal = "threeFive";
 String fourOneVal = "fourOne", fourTwoVal = "fourTwo", fourThreeVal = "fourThree", fourFourVal = "fourFour", fourFiveVal = "fourFive";
 String fiveOneVal = "fiveOne", fiveTwoVal = "fiveTwo", fiveThreeVal = "fiveThree", fiveFourVal = "fiveFour", fiveFiveVal = "fiveFive";

 public HeartAndSoul(String title) 
 {
  super(title);

  bOne = BombGen(bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen); //<editor-fold>
  bTwo = BombGen(bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen);
  bThree = BombGen(bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen);
  bFour = BombGen(bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen);
  bFive = BombGen(bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen);
  bSix = BombGen(bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen);
  bSeven = BombGen(bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen);
  bEight = BombGen(bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen);
  bNine = BombGen(bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen);
  bTen = BombGen(bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen);
  bEleven = BombGen(bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen);
  bTwelve = BombGen(bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen);
  bThirteen = BombGen(bOne, bTwo, bThree, bFour, bFive, bSix, bSeven, bEight, bNine, bTen, bEleven, bTwelve, bThirteen); //</editor-fold>

  oneOneVal = SetBomb(oneOneVal); //<editor-fold>
  oneTwoVal = SetBomb(oneTwoVal);
  oneThreeVal = SetBomb(oneThreeVal);
  oneFourVal = SetBomb(oneFourVal);
  oneFiveVal = SetBomb(oneFiveVal);

  twoOneVal = SetBomb(twoOneVal);
  twoTwoVal = SetBomb(twoTwoVal);
  twoThreeVal = SetBomb(twoThreeVal);
  twoFourVal = SetBomb(twoFourVal);
  twoFiveVal = SetBomb(twoFiveVal);

  threeOneVal = SetBomb(threeOneVal);
  threeTwoVal = SetBomb(threeTwoVal);
  threeThreeVal = SetBomb(threeThreeVal);
  threeFourVal = SetBomb(threeFourVal);
  threeFiveVal = SetBomb(threeFiveVal);

  fourOneVal = SetBomb(fourOneVal);
  fourTwoVal = SetBomb(fourTwoVal);
  fourThreeVal = SetBomb(fourThreeVal);
  fourFourVal = SetBomb(fourFourVal);
  fourFiveVal = SetBomb(fourFiveVal);

  fiveOneVal = SetBomb(fiveOneVal);
  fiveTwoVal = SetBomb(fiveTwoVal);
  fiveThreeVal = SetBomb(fiveThreeVal);
  fiveFourVal = SetBomb(fiveFourVal);
  fiveFiveVal = SetBomb(fiveFiveVal); //</editor-fold>

  if (oneOneVal.equals("b")) //<editor-fold>
  {
   rowOneVal=rowOneVal+1;
   colOneVal=colOneVal+1;
  }
  if (oneTwoVal.equals("b"))
  {
   rowOneVal=rowOneVal+1;
   colTwoVal=colOneVal+1;
  }
  if (oneThreeVal.equals("b"))
  {
   rowOneVal=rowOneVal+1;
   colThreeVal=colOneVal+1;
  }
  if (oneFourVal.equals("b"))
  {
   rowOneVal=rowOneVal+1;
   colFourVal=colOneVal+1;
  }
  if (oneFiveVal.equals("b"))
  {
   rowOneVal=rowOneVal+1;
   colFiveVal=colOneVal+1;
  }

  if (twoOneVal.equals("b"))
  {
   rowTwoVal=rowOneVal+1;
   colOneVal=colOneVal+1;
  }
  if (twoTwoVal.equals("b"))
  {
   rowTwoVal=rowOneVal+1;
   colTwoVal=colOneVal+1;
  }
  if (twoThreeVal.equals("b"))
  {
   rowTwoVal=rowOneVal+1;
   colThreeVal=colOneVal+1;
  }
  if (twoFourVal.equals("b"))
  {
   rowTwoVal=rowOneVal+1;
   colFourVal=colOneVal+1;
  }
  if (twoFiveVal.equals("b"))
  {
   rowTwoVal=rowOneVal+1;
   colFiveVal=colOneVal+1;
  }

  if (threeOneVal.equals("b"))
  {
   rowThreeVal=rowOneVal+1;
   colOneVal=colOneVal+1;
  }
  if (threeTwoVal.equals("b"))
  {
   rowThreeVal=rowOneVal+1;
   colTwoVal=colOneVal+1;
  }
  if (threeThreeVal.equals("b"))
  {
   rowThreeVal=rowOneVal+1;
   colThreeVal=colOneVal+1;
  }
  if (threeFourVal.equals("b"))
  {
   rowThreeVal=rowOneVal+1;
   colFourVal=colOneVal+1;
  }
  if (threeFiveVal.equals("b"))
  {
   rowThreeVal=rowOneVal+1;
   colFiveVal=colOneVal+1;
  }

  if (fourOneVal.equals("b"))
  {
   rowFourVal=rowOneVal+1;
   colOneVal=colOneVal+1;
  }
  if (fourTwoVal.equals("b"))
  {
   rowFourVal=rowOneVal+1;
   colTwoVal=colOneVal+1;
  }
  if (fourThreeVal.equals("b"))
  {
   rowFourVal=rowOneVal+1;
   colThreeVal=colOneVal+1;
  }
  if (fourFourVal.equals("b"))
  {
   rowFourVal=rowOneVal+1;
   colFourVal=colOneVal+1;
  }
  if (fourFiveVal.equals("b"))
  {
   rowFourVal=rowOneVal+1;
   colFiveVal=colOneVal+1;
  }

  if (fiveOneVal.equals("b"))
  {
   rowFiveVal=rowOneVal+1;
   colOneVal=colOneVal+1;
  }
  if (fiveTwoVal.equals("b"))
  {
   rowFiveVal=rowOneVal+1;
   colTwoVal=colOneVal+1;
  }
  if (fiveThreeVal.equals("b"))
  {
   rowFiveVal=rowOneVal+1;
   colThreeVal=colOneVal+1;
  }
  if (fiveFourVal.equals("b"))
  {
   rowFiveVal=rowOneVal+1;
   colFourVal=colOneVal+1;
  }
  if (fiveFiveVal.equals("b"))
  {
   rowFiveVal=rowOneVal+1;
   colFiveVal=colOneVal+1;
  } //</editor-fold>

  JPanel refRow = new JPanel(), oneRow = new JPanel(), twoRow = new JPanel(), threeRow = new JPanel(), fourRow = new JPanel(), fiveRow = new JPanel(), infoRow = new JPanel(); //<editor-fold>

  JTextField colOne = new JTextField(1), colTwo = new JTextField(1), colThree = new JTextField(1), colFour = new JTextField(1), colFive = new JTextField(1), rowOne = new JTextField(1), rowTwo = new JTextField(1), rowThree = new JTextField(1), rowFour = new JTextField(1), rowFive = new JTextField(1), score = new JTextField(9);

  colOne.setEditable(false); colTwo.setEditable(false); colThree.setEditable(false); colFour.setEditable(false); colFive.setEditable(false); rowOne.setEditable(false); rowTwo.setEditable(false); rowThree.setEditable(false); rowFour.setEditable(false); rowFive.setEditable(false); score.setEditable(false);

  JButton oneOne = new JButton(""), oneTwo = new JButton(""), oneThree = new JButton(""), oneFour = new JButton(""), oneFive = new JButton(""), twoOne = new JButton(""), twoTwo = new JButton(""), twoThree = new JButton(""), twoFour = new JButton(""), twoFive = new JButton(""), threeOne = new JButton(""), threeTwo = new JButton(""), threeThree = new JButton(""), threeFour = new JButton(""), threeFive = new JButton(""), fourOne = new JButton(""), fourTwo = new JButton(""), fourThree = new JButton(""), fourFour = new JButton(""), fourFive = new JButton(""), fiveOne = new JButton(""), fiveTwo = new JButton(""), fiveThree = new JButton(""), fiveFour = new JButton(""), fiveFive = new JButton("");

  oneOne.setSize(20,20); oneTwo.setSize(20,20); oneThree.setSize(20,20); oneFour.setSize(20,20); oneFive.setSize(20,20); twoOne.setSize(20,20); twoTwo.setSize(20,20); twoThree.setSize(20,20); twoFour.setSize(20,20); twoFive.setSize(20,20); threeOne.setSize(20,20); threeTwo.setSize(20,20); threeThree.setSize(20,20); threeFour.setSize(20,20); threeFive.setSize(20,20); fourOne.setSize(20,20); fourTwo.setSize(20,20); fourThree.setSize(20,20); fourFour.setSize(20,20); fourFive.setSize(20,20); fiveOne.setSize(20,20); fiveTwo.setSize(20,20); fiveThree.setSize(20,20); fiveFour.setSize(20,20); fiveFive.setSize(20,20);

  oneOne.setActionCommand(oneOneVal); oneTwo.setActionCommand(oneTwoVal); oneThree.setActionCommand(oneThreeVal); oneFour.setActionCommand(oneFourVal); oneFive.setActionCommand(oneFiveVal); twoOne.setActionCommand(twoOneVal); twoTwo.setActionCommand(twoTwoVal); twoThree.setActionCommand(twoThreeVal); twoFour.setActionCommand(twoFourVal); twoFive.setActionCommand(twoFiveVal); threeOne.setActionCommand(threeOneVal); threeTwo.setActionCommand(threeTwoVal); threeThree.setActionCommand(threeThreeVal); threeFour.setActionCommand(threeFourVal); threeFive.setActionCommand(threeFiveVal); fourOne.setActionCommand(fourOneVal); fourTwo.setActionCommand(fourTwoVal); fourThree.setActionCommand(fourThreeVal); fourFour.setActionCommand(fourFourVal); fourFive.setActionCommand(fourFiveVal); fiveOne.setActionCommand(fiveOneVal); fiveTwo.setActionCommand(fiveTwoVal); fiveThree.setActionCommand(fiveThreeVal); fiveFour.setActionCommand(fiveFourVal); fiveFive.setActionCommand(fiveFiveVal);

  oneOne.addActionListener(this); oneTwo.addActionListener(this); oneThree.addActionListener(this); oneFour.addActionListener(this); oneFive.addActionListener(this); twoOne.addActionListener(this); twoTwo.addActionListener(this); twoThree.addActionListener(this); twoFour.addActionListener(this); twoFive.addActionListener(this); threeOne.addActionListener(this); threeTwo.addActionListener(this); threeThree.addActionListener(this); threeFour.addActionListener(this); threeFive.addActionListener(this); fourOne.addActionListener(this); fourTwo.addActionListener(this); fourThree.addActionListener(this); fourFour.addActionListener(this); fourFive.addActionListener(this); fiveOne.addActionListener(this); fiveTwo.addActionListener(this); fiveThree.addActionListener(this); fiveFour.addActionListener(this); fiveFive.addActionListener(this);

  JLabel scoreText = new JLabel("Score:");

  refRow.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
  oneRow.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
  twoRow.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
  threeRow.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
  fourRow.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
  fiveRow.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
  infoRow.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));

  refRow.setSize(150,40);
  oneRow.setSize(150,40);
  twoRow.setSize(150,40);
  threeRow.setSize(150,40);
  fourRow.setSize(150,40);
  fiveRow.setSize(150,40);
  infoRow.setSize(150,40);

  refRow.add(colOne);
  refRow.add(colTwo);
  refRow.add(colThree);
  refRow.add(colFour);
  refRow.add(colFive);

  oneRow.add(oneOne);
  oneRow.add(oneTwo);
  oneRow.add(oneThree);
  oneRow.add(oneFour);
  oneRow.add(oneFive);
  oneRow.add(rowOne);

  twoRow.add(twoOne);
  twoRow.add(twoTwo);
  twoRow.add(twoThree);
  twoRow.add(twoFour);
  twoRow.add(twoFive);
  twoRow.add(rowTwo);

  threeRow.add(threeOne);
  threeRow.add(threeTwo);
  threeRow.add(threeThree);
  threeRow.add(threeFour);
  threeRow.add(threeFive);
  threeRow.add(rowThree);

  fourRow.add(fourOne);
  fourRow.add(fourTwo);
  fourRow.add(fourThree);
  fourRow.add(fourFour);
  fourRow.add(fourFive);
  fourRow.add(rowFour);

  fiveRow.add(fiveOne);
  fiveRow.add(fiveTwo);
  fiveRow.add(fiveThree);
  fiveRow.add(fiveFour);
  fiveRow.add(fiveFive);
  fiveRow.add(rowFive);

  infoRow.add(scoreText);
  infoRow.add(score); //</editor-fold>

  setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
  add(refRow);
  add(oneRow);
  add(twoRow);
  add(threeRow);
  add(fourRow);
  add(fiveRow);
  add(infoRow);

  colOne.setText(colOneVal+"");
  colTwo.setText(colTwoVal+"");
  colThree.setText(colThreeVal+"");
  colFour.setText(colFourVal+"");
  colFive.setText(colFiveVal+"");
  rowOne.setText(rowOneVal+"");
  rowTwo.setText(rowTwoVal+"");
  rowThree.setText(rowThreeVal+"");
  rowFour.setText(rowFourVal+"");
  rowFive.setText(rowFiveVal+"");
  score.setText(scoreVal+"");

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }

 public void actionPerformed(ActionEvent evt)  
 {
  //more code will go here, not done yet
  repaint(); 
 }

 private String BombGen(String bone, String btwo, String bthree, String bfour, String bfive, String bsix, String bseven, String beight, String bnine, String bten, String beleven, String btwelve, String bthirteen)
 {
  newBombCheck = 0;

  while (newBombCheck == 0)
  {
   bombX = rand.nextInt(5)+1;
   bombY = rand.nextInt(5)+1;

   if (bombX == 1)
    bombCarrier="one";
   if (bombX == 2)
    bombCarrier="two";
   if (bombX == 3)
    bombCarrier="three";
   if (bombX == 4)
    bombCarrier="four";
   if (bombX == 5)
    bombCarrier="five";

   if (bombY == 1)
    bombCarrier.concat("One");
   if (bombY == 2)
    bombCarrier.concat("Two");
   if (bombY == 3)
    bombCarrier.concat("Three");
   if (bombY == 4)
    bombCarrier.concat("Four");
   if (bombY == 5)
    bombCarrier.concat("Five");

   if (!bombCarrier.equals(bone) && !bombCarrier.equals(btwo) && !bombCarrier.equals(bthree) && !bombCarrier.equals(bfour) && !bombCarrier.equals(bfive) && !bombCarrier.equals(bsix) && !bombCarrier.equals(bseven) && !bombCarrier.equals(beight) && !bombCarrier.equals(bnine) && !bombCarrier.equals(bten) && !bombCarrier.equals(beleven) && !bombCarrier.equals(btwelve) && !bombCarrier.equals(bthirteen))
    newBombCheck = 1;
  } 
  return bombCarrier;
 }

 private String SetBomb(String suspect)
 {
  if (suspect.equals(bOne) || suspect.equals(bTwo) || suspect.equals(bThree) || suspect.equals(bFour) || suspect.equals(bFive) || suspect.equals(bSix) || suspect.equals(bSeven) || suspect.equals(bEight) || suspect.equals(bNine) || suspect.equals(bTen) || suspect.equals(bEleven) || suspect.equals(bTwelve) || suspect.equals(bThirteen))
   suspect = "b";
  return suspect;
 }

 public static void main(String[] args)
 {
  HeartAndSoul echo = new HeartAndSoul("The Game Corner") ;
  echo.setSize(200,300);     
  echo.setVisible(true);      
 }
}

很抱歉这么久了,但是我想把整个事情搞定,因为我完全不知道我做错了什么。我已经尝试过更具体地添加动作监听器,我尝试添加Override注释,但Netbeans拒绝进一步开始执行程序。

4 个答案:

答案 0 :(得分:1)

问题在于:

if (!bombCarrier.equals(bone) && !bombCarrier.equals(btwo) && !bombCarrier.equals(bthree) && !bombCarrier.equals(bfour) && !bombCarrier.equals(bfive) && !bombCarrier.equals(bsix) && !bombCarrier.equals(bseven) && !bombCarrier.equals(beight) && !bombCarrier.equals(bnine) && !bombCarrier.equals(bten) && !bombCarrier.equals(beleven) && !bombCarrier.equals(btwelve) && !bombCarrier.equals(bthirteen))
newBombCheck = 1;

永远不会输入此if,因此newBombCheck永远不会设置为1,因此循环将永远运行。

你应该考虑一下。对我来说,在构造函数中做太多事情也是错误的。 这段代码将成为维护的噩梦,您可能希望稍微重命名一下,并添加注释以明确您想要实现的目标以及为什么可能

干杯,尤金。

答案 1 :(得分:0)

BombGen方法处于无限循环中。 newBombCheck始终为0.您应该在调试器中运行,然后暂停应用程序。它总会在你的循环中停止,这应该告诉你一些错误。

答案 2 :(得分:0)

这里有一个无限循环:

  while (newBombCheck == 0)

在此循环中放置System.out.println(bombCarrier);并检查值是否与您期望的值一样。无论值是什么,您的代码都不会在此循环中访问if语句,因此newBombCheck永远不会设置为1。

答案 3 :(得分:0)

 bombX = rand.nextInt(5)+1;
   bombY = rand.nextInt(5)+1;

   if (bombX == 1)
    bombCarrier="one";
   if (bombX == 2)
    bombCarrier="two";
   if (bombX == 3)
    bombCarrier="three";
   if (bombX == 4)
    bombCarrier="four";
   if (bombX == 5)
    bombCarrier="five";

   if (bombY == 1)
    bombCarrier.concat("One");
   if (bombY == 2)
    bombCarrier.concat("Two");
   if (bombY == 3)
    bombCarrier.concat("Three");
   if (bombY == 4)
    bombCarrier.concat("Four");
   if (bombY == 5)
    bombCarrier.concat("Five");

我认为你试图将其从5 * 5扩展到13 * 13,但忘记添加bombX = 6 ... 13以及炸弹。这就是为什么它在bombGen6之后卡住了 然后你的情况永远不会成真,并继续生成数字b / w 1-5。