当我点击的时候,我一直在*行之间的行上得到一个空指针异常。我已经看了大约一个小时了,似乎找不出原因。任何帮助都将不胜感激。谢谢。
private Color currentColor;
private char currentChar;
private Letter letter;
private JComboBox comboBox;
private JPanel controlPanel;
private Color[] colorArray = {Color.black,Color.blue,Color.cyan,Color.orange,Color.white,Color.yellow};
private String[] colorStringArray = {"black","blue","cyan","orange","white","yellow"};
private ArrayList<Letter> letterList;
private JButton button1;
private Canvas canvas;
public WholePanel()
{
comboBox = new JComboBox(colorStringArray);
// here we use black to draw a letter
currentColor = colorArray[Color.black];
// set the default character to 'A'
currentChar = 'A';
button1 = new JButton("Undo");
controlPanel = new JPanel();
controlPanel.add(button1);
controlPanel.add(comboBox);
canvas = new Canvas();
JSplitPane sp = new JSplitPane(JSplitPane.VERTICAL_SPLIT, controlPanel, canvas);
canvas.addMouseListener(new PointListener());
add(sp);
// make this panel listen to mouse
addMouseListener(new PointListener());
setBackground(Color.white);
//This method needs to be called for this panel to listen to keys
//When panel listens to other things, and go back to listen
//to keys, this method needs to be called again.
requestFocus();
}
private class PointListener implements MouseListener
{
int x;
int y;
// when a user clicks the panel (applet),
// KeyListener is focused in it.
public void mousePressed(MouseEvent event)
{
x = event.getX();
y = event.getY();
letter = new Letter(x,y,currentChar,colorArray[comboBox.getSelectedIndex()]);
//******************************
letterList.add(letter);
//******************************
for(Letter letter1 : letterList)
{
letter1.Draw(getGraphics());
}
x=y=0;
requestFocus();
}
}
}发布于 2013-02-20 13:56:00
你没有初始化letterList。
将以下行添加到WholePanel的构造函数中:
letterList = new ArrayList<Letter>();https://stackoverflow.com/questions/14973177
复制相似问题