Mam projekt szkolny, którego nie powinienem zaczynać do poniedziałku i nie powinien minąć jeszcze za 6 tygodni lub dłużej. Tworzymy program w javie, aby dodać to, co chcemy do bazy danych, wybrałem gry (tytuł, gatunek, platforma, cena, ilość (string, combobox, combobox, double, int)), używam stosu do dodania wszystkie obiekty, ale z jakiegoś powodu nie mogę go skompilować z jakiegoś powodu i ciągle otrzymuję naprawdę dziwne błędy. Mój błąd, a następnie kod są odpowiednio poniżej.

nathan@ubuntu:~/Desktop/TAFE/Jeff (Java)/personalProject$ javac *.java
GameCombo.java:11: <identifier> expected
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                   ^
GameCombo.java:11: illegal start of type
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                    ^
GameCombo.java:11: ')' expected
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                       ^
GameCombo.java:11: ';' expected
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                            ^
GameCombo.java:11: illegal start of type
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                             ^
GameCombo.java:11: <identifier> expected
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                                            ^
GameCombo.java:11: ';' expected
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                                             ^
GameCombo.java:11: illegal start of type
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                                               ^
GameCombo.java:11: <identifier> expected
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                                                ^
GameCombo.java:11: <identifier> expected
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                                                   ^
GameCombo.java:11: illegal start of type
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                                                          ^
GameCombo.java:11: <identifier> expected
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                                                           ^
GameCombo.java:11: ';' expected
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                                                             ^
GameCombo.java:11: illegal start of type
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                                                              ^
GameCombo.java:11: <identifier> expected
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                                                               ^
GameCombo.java:11: ';' expected
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
                                                                ^
16 errors

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

import java.io.*;
import java.util.*;

public class GameCombo extends JPanel {
  ArrayList<Game> gamesList = new ArrayList<Game>();
  Stack<Game> gamesStack = new Stack<Game>();
    gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
    //gamesList.add(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
    //gamesList.add(new Game("[Dead Space]", "Xbox 360", "Horror", "$68.00", "1"));

  //String[] games = {"", "[Halo: Reach] Xbox 360; Action; $108.00; 2;", "[Dead Space] Xbox 360; Horror; $65.00; 1;"}; 
  private JComboBox _gameBox = new JComboBox(gamesStack);

    public GameCombo() {
      setLayout(new GridLayout(1,1,1,1));

        add(_gameBox);
    }
}
0
Nathan Kreider 16 luty 2012, 11:30

3 odpowiedzi

Najlepsza odpowiedź

To połączenie:

gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));

Powinno być w jakiejś metodzie, skoro chcesz to zrobić w każdym nowym obiekcie, tak jak to wygląda z twojego kodu, dlaczego nie przenieść go do konstruktora:

public class GameCombo extends JPanel {
  ArrayList<Game> gamesList = new ArrayList<Game>();
  Stack<Game> gamesStack = new Stack<Game>();
  private JComboBox _gameBox;

    public GameCombo() {
         setLayout(new GridLayout(1,1,1,1));
         gamesStack.push(new Game("[Halo: Reach]", 3, 1, 108.00, 2));
         _gameBox = new JComboBox(gamesStack);
         add(_gameBox);
    }
}
3
MByD 16 luty 2012, 11:32

Musisz najpierw zdefiniować metodę, a następnie napisać odpowiedni kod w ramach metody. Nie ujawniam zbyt wiele, ponieważ jest to projekt pracy domowej. Spróbuj przeczytać więcej o klasach i metodach Java

2
Rocky 16 luty 2012, 11:33

Nie możesz mieć swojego kodu bezpośrednio w treści klasy, musisz umieścić go w metodzie lub konstruktorze.

1
berinder 16 luty 2012, 11:36