Java-программа не запускается, я понятия не имею, что не так - PullRequest
0 голосов
/ 07 февраля 2012

Я пытался выяснить, почему эта 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 ]

1 голос
/ 07 февраля 2012

Проблема здесь:

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;

Это если никогда не вводится, таким образом, newBombCheck никогда не устанавливается в 1, таким образом цикл выполняется вечно.

Тебе стоит немного подумать. Также делать так много в конструкторе просто неправильно, для меня. Этот код будет кошмарным в обслуживании, вы можете немного переименовать вещи и добавить комментарии, чтобы сделать понятным, чего вы хотите достичь и почему это может быть

Ура, Евгений.

0 голосов
/ 07 февраля 2012
 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 и тоже для bombY.вот почему он застрял после bombGen6.
, и тогда ваше состояние никогда не будет истинным, и продолжайте генерировать числа бегов ч / б 1-5.

0 голосов
/ 07 февраля 2012

У вас есть бесконечный цикл:

  while (newBombCheck == 0)

Внутри этого цикла поместите System.out.println(bombCarrier); и проверьте, соответствуют ли значения тем, которые вы ожидаете.Каковы бы ни были значения, ваш код никогда не попадет в оператор if в этом цикле, и поэтому newBombCheck никогда не будет установлен в 1.

0 голосов
/ 07 февраля 2012

Он находится в бесконечном цикле в методе BombGen.newBombCheck всегда равно 0. Что вы должны сделать, это запустить в отладчике, а затем приостановить приложение.Он всегда остановится в вашем цикле, что должно сказать вам, что что-то не так.

...