2014-08-31 3 views
1

У меня есть два соответствующих классов SpaceInvadersApp и HighScoreTableModelДобавление частного поля для класса в Java

Мне нужно добавить новое частное поле в класс SpaceInvadersApp типа HighScoreTableModel и инициализирует это поле в начале SpaceInvadersApp конструктор.

Это моя попытка, я думаю, что я делаю это неправильно.

public class SpaceInvadersApp extends JFrame { 

/** 
* 
*/ 
private static final long serialVersionUID = 1L; 

private final GamePanel game; 

private HighScoreTableModel highScoreTableModel; // unsure about this 

final private JMenuItem menuItemGamePause; 

/** 
* Create new Space Invaders application. 
* @throws HeadlessException 
*/ 
public SpaceInvadersApp() throws HeadlessException { 

    highScoreTableModel = new HighScoreTableModel("Name", "Score"); //unsure about this 

Херес Релевент код из класса HighScoreTableModel

package spaceinvaders.highscores; 

import java.util.*; 
import javax.swing.event.*; 
import javax.swing.table.*; 

public class HighScoreTableModel implements TableModel { 


private List<String> col1StringList = new ArrayList<String>(); 
private List<Integer> col2IntegerList = new ArrayList<Integer>(); 
private String col1Name, col2Name; 

private List<TableModelListener> listenerList = new ArrayList<TableModelListener>(); 

public HighScoreTableModel(String col1Name, String col2Name) { 
    this.col1Name = col1Name; 
    this.col2Name = col2Name; 
+3

Что вы хотите сказать? –

+0

Вышеприведенный код не работает. см. // unsure об этом – Zhauo

+1

Вы не присваиваете значения всем полям 'final', но что именно * не работает * и как * это не работает *? –

ответ

2

Рассмотрим глядя на пакеты этих классов, необходимость быть в той же упаковке или импортного производства.

Другая деталь - ваша переменная menuItemGamePause, ее необходимо инициализировать, так как она равна final.

final private JMenuItem menuItemGamePause = new JMenuItem(); 
Смежные вопросы