2015-05-31 61 views
-2

编译我的Java程序时出现问题。我不知道为什么,当我行103创建新的对象,我得到这个错误...我得到的错误是:Java JList - 参数不能为空

Exception in thread "main" java.lang.NullPointerException: Argument must not be null 
    at javax.swing.Spring.checkArg(Spring.java:688) 
    at javax.swing.Spring.width(Spring.java:657) 
    at javax.swing.SpringLayout.applyDefaults(SpringLayout.java:1093) 
    at javax.swing.SpringLayout.putConstraints(SpringLayout.java:1123) 
    at javax.swing.SpringLayout.getConstraints(SpringLayout.java:1158) 
    at javax.swing.SpringLayout.putConstraint(SpringLayout.java:1080) 
    at javax.swing.SpringLayout.putConstraint(SpringLayout.java:1075) 
    at javax.swing.SpringLayout.putConstraint(SpringLayout.java:1041) 
    at cwiczenie9.Cwiczenie9.setSpringLayoutConstraint(Cwiczenie9.java:204) 
    at cwiczenie9.Cwiczenie9.<init>(Cwiczenie9.java:31) 
    at cwiczenie9.Cwiczenie9.main(Cwiczenie9.java:232) 
Java Result: 1 
BUILD SUCCESSFUL (total time: 2 seconds) 

我的应用程序代码是在这里:

package cwiczenie9; 

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

public class Cwiczenie9 extends JFrame { 

    private Container container; 
    private SpringLayout sprLay; 
    private JLabel[] jLabel; 
    private JTextField[] jTextField; 
    private JRadioButton[] jRadioButton; 
    private ButtonGroup buttonGroup; 
    private SpinnerModel spinnerModel; 
    private JSpinner jSpinner; 
    private JButton[] jButton; 
    private JList jList; 
    private final String[] jListItems = {"Pies", "Kot", "Chomik", "Królik", 
     "Jaszczurka", "Pająk", "Rybki", "Owady"}; 

    public Cwiczenie9() { 
     addContainer(); 
     setFrameProperties(); 
     createJLabel(5); 
     createJTextField(2); 
     createJRadioButton(2); 
     createJSpinner(0, 0, 99, 1); 
     createJButton(2); 
     setSpringLayoutConstraint(); 
    } 

    private void addContainer() { 
     sprLay = new SpringLayout(); 
     container = this.getContentPane(); 
     container.setLayout(sprLay);  
    } 

    private void setFrameProperties() { 
     this.setTitle("Ankieta");   
     this.setSize(300, 300); 
     this.setLocation(150, 150); 
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 

    private void createJLabel(int count) { 
     jLabel = new JLabel[count]; 
     for(int i = 0; i < count; i++) 
      jLabel[i] = new JLabel(); 
     jLabel[0].setText("Imię:"); 
     jLabel[1].setText("Nazwisko:"); 
     jLabel[2].setText("Płeć:"); 
     jLabel[3].setText("Wiek:"); 
     jLabel[4].setText("Wybierz zwierzęta, które posiadasz w domu:"); 
     for(JLabel jl : jLabel) 
      container.add(jl); 
    } 

    private void createJTextField(int count) { 
     jTextField = new JTextField[count]; 
     for(int i = 0; i < count; i++) 
      jTextField[i] = new JTextField(); 
     jTextField[0].setColumns(15); 
     jTextField[1].setColumns(15); 
     for(JTextField jtf : jTextField) 
      container.add(jtf); 
    } 

    private void createJRadioButton(int count) { 
     jRadioButton = new JRadioButton[count]; 
     buttonGroup = new ButtonGroup(); 
     for(int i = 0; i < count; i++) 
      jRadioButton[i] = new JRadioButton(); 
     jRadioButton[0].setText("Kobieta"); 
     jRadioButton[1].setText("Mężczyzna"); 
     for(JRadioButton jrb : jRadioButton) { 
      buttonGroup.add(jrb); 
      container.add(jrb); 
     } 
    } 

    private void createJSpinner(int initialValue, int minValue, 
      int maxValue, int step) { 
     spinnerModel = new SpinnerNumberModel(initialValue, 
       minValue, 
       maxValue, 
       step); 
     jSpinner = new JSpinner(spinnerModel); 
     container.add(jSpinner); 
    } 

    private void createJButton(int count) { 
     jButton = new JButton[count]; 
     for(int i = 0; i < count; i++) 
      jButton[i] = new JButton(); 
     jButton[0].setText("Zatwierdź"); 
     jButton[1].setText("Anuluj"); 
     for(JButton jb : jButton) 
      container.add(jb); 
    } 

    private void createJList() { 
     jList = new JList(jListItems); 
     jList.setPreferredSize(new Dimension(120, 80)); 
     jList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
     jList.setLayoutOrientation(JList.VERTICAL_WRAP); 
     jList.setVisibleRowCount(5); 
     container.add(jList); 
    } 

    private void setSpringLayoutConstraint() { 
     // jLabel[0] - NORTH <-> NORTH 
     sprLay.putConstraint(SpringLayout.NORTH, jLabel[0], 
       10, 
       SpringLayout.NORTH, container); 
     // jLabel[0] - WEST <--> WEST 
     sprLay.putConstraint(SpringLayout.WEST, jLabel[0], 
       10, 
       SpringLayout.WEST, container); 

     // jTextField[0] - NORTH <-> NORTH 
     sprLay.putConstraint(SpringLayout.NORTH, jTextField[0], 
       10, 
       SpringLayout.NORTH, container); 
     // jTextField[0] - WEST <-> EAST 
     sprLay.putConstraint(SpringLayout.WEST, jTextField[0], 
       10, 
       SpringLayout.EAST, jLabel[0]); 

     // jLabel[1] - NORTH <-> SOUTH 
     sprLay.putConstraint(SpringLayout.NORTH, jLabel[1], 
       15, 
       SpringLayout.SOUTH, jLabel[0]); 
     // jLabel[1] - WEST <--> WEST 
     sprLay.putConstraint(SpringLayout.WEST, jLabel[1], 
       10, 
       SpringLayout.WEST, container); 

     // jTextField[1] - NORTH <-> SOUTH 
     sprLay.putConstraint(SpringLayout.NORTH, jTextField[1], 
       15, 
       SpringLayout.SOUTH, jTextField[0]); 
     // jTextField[1] - WEST <-> EAST 
     sprLay.putConstraint(SpringLayout.WEST, jTextField[1], 
       10, 
       SpringLayout.EAST, jLabel[1]); 

     // jLabel[2] - NORTH <-> SOUTH 
     sprLay.putConstraint(SpringLayout.NORTH, jLabel[2], 
       15, 
       SpringLayout.SOUTH, jLabel[1]); 
     // jLabel[2] - WEST <--> EAST 
     sprLay.putConstraint(SpringLayout.WEST, jLabel[2], 
       10, 
       SpringLayout.WEST, container); 

     // jRadioButton[0] - NORTH <-> SOUTH 
     sprLay.putConstraint(SpringLayout.NORTH, jRadioButton[0], 
       15, 
       SpringLayout.SOUTH, jTextField[1]); 
     // jRadioButton[0] - WEST <-> EAST 
     sprLay.putConstraint(SpringLayout.WEST, jRadioButton[0], 
       10, 
       SpringLayout.EAST, jLabel[2]); 

     // jRadioButton[1] - NORTH <-> SOUTH 
     sprLay.putConstraint(SpringLayout.NORTH, jRadioButton[1], 
       15, 
       SpringLayout.SOUTH, jTextField[1]); 
     // jRadioButton[1] - WEST <-> EAST 
     sprLay.putConstraint(SpringLayout.WEST, jRadioButton[1], 
       10, 
       SpringLayout.EAST, jRadioButton[0]); 

     // jLabel[3] - NORTH <-> SOUTH 
     sprLay.putConstraint(SpringLayout.NORTH, jLabel[3], 
       15, 
       SpringLayout.SOUTH, jLabel[2]); 
     // jLabel[3] - WEST <-> WEST 
     sprLay.putConstraint(SpringLayout.WEST, jLabel[3], 
       10, 
       SpringLayout.WEST, container); 

     // jSpinner - NORTH <-> SOUTH 
     sprLay.putConstraint(SpringLayout.NORTH, jSpinner, 
       15, 
       SpringLayout.SOUTH, jRadioButton[0]); 
     // jSPinner - WEST <-> EAST 
     sprLay.putConstraint(SpringLayout.WEST, jSpinner, 
       10, 
       SpringLayout.EAST, jLabel[3]); 

     // jLabel[4] - NORTH <-> SOUTH 
     sprLay.putConstraint(SpringLayout.NORTH, jLabel[4], 
       15, 
       SpringLayout.SOUTH, jLabel[3]); 
     // jLabel[4] - WEST <-> WEST 
     sprLay.putConstraint(SpringLayout.WEST, jLabel[4], 
       10, 
       SpringLayout.WEST, container); 

     // jList - NORTH <-> SOUTH 
     sprLay.putConstraint(SpringLayout.NORTH, jList, 
       15, 
       SpringLayout.SOUTH, jLabel[4]); 
     // jList - WEST <-> WEST 
     sprLay.putConstraint(SpringLayout.WEST, jList, 
       10, 
       SpringLayout.WEST, container); 

     // jButton[0] - NORTH <-> SOUTH 
     sprLay.putConstraint(SpringLayout.NORTH, jButton[0], 
       15, 
       SpringLayout.SOUTH, jList); 
     // jButton[0] - WEST <-> WEST 
     sprLay.putConstraint(SpringLayout.WEST, jButton[0], 
       10, 
       SpringLayout.WEST, container); 

     // jButton[1] - NORTH <-> SOUTH 
     sprLay.putConstraint(SpringLayout.NORTH, jButton[1], 
       15, 
       SpringLayout.SOUTH, jList); 
     // jButton[1] - WEST <-> EAST 
     sprLay.putConstraint(SpringLayout.WEST, jButton[1], 
       10, 
       SpringLayout.EAST, jButton[0]); 
    } 

    public static void main(String[] args) { 
     Cwiczenie9 cw9 = new Cwiczenie9(); 
     cw9.setVisible(true); 
    } 
} 

感谢您帮助提前:)

+0

在什么时候你正在调用初始化jList字段的'createJList()'方法? –

+0

类构造函数Cwiczenie9。是的,我的坏...我忘了在构造函数中调用这个过程... – anton86993

回答

0

您试图访问一个对象,这似乎是null的方法setSpringLayoutConstraint()线204。需要更多信息来回答这个问题。

向我们展示您的代码,方法setSpringLayoutConstraint(),并为更多dtailed答案编号。

0

我发现了这个问题。我没有在构造函数中调用createJList()函数。现在一切正常。