簡體   English   中英

Java Swing GUI中的NullPointerException

[英]NullPointerException in Java Swing GUI

我在以下代碼中得到一個NullPointerException 該代碼的主要目的是在一個類中接受用戶的輸入,然后將其傳遞給另一個類以構造GridLayout

這是我第一堂課的代碼...

public class A{
    int N;
    JLabel label;
    JPanel panel;
    JButton button;
    JFrame frame;
    JTextField text;

    public A(){
        frame=new JFrame();
        panel=new JPanel();
        text=new JTextField(20);
        label=new JLabel("Enter the number of states");
        button=new JButton("Submit");

        panel.add(label);
        panel.add(text);
        panel.add(button);
        frame.add(panel,BorderLayout.CENTER);

        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae){
                N=Integer.parseInt(text.getText());
                B1 page=new B1(N);
                page.frame.setVisible(true);
            }
        });

        frame.setSize(320,240);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String arg[]){
        A ab=new A();
    }
}

這是我第二節課的代碼...

public class B1 extends A {
    JFrame frame;
    JPanel pan;
    JButton button;
    double transition[][];
    JTextField tf[][];

    B1(int N){
        this.N=N;
        frame=new JFrame("Transition matrix");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pan=new JPanel();
        pan.setLayout(new GridLayout(N+1,N));

        for(int i=0; i<N; i++){
            for(int j=0; j<N; j++){
                tf[i][j]=new JTextField();
                pan.add(tf[i][j]);
            }
        }

        button=new JButton("Submit");
        pan.add(button);
        frame.add(pan);
        frame.pack();
    }
}

B1類的構造函數中,您需要像下面這樣new JTextField array( tf ):

...    
tf = new JTextField[N][N];
//code start
for(int i=0; i<N; i++)
{
    for(int j=0; j<N; j++)
    {
        tf[i][j]=new JTextField();
        pan.add(tf[i][j]);
    }
}
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM