Java 将命令输出打印到文本区域/文本面板-JSch

Java 将命令输出打印到文本区域/文本面板-JSch,java,jsch,Java,Jsch,该程序是JSch的一部分,以前用于读取输出内容,然后将其打印到控制台,但我制作了一个带有textPanel的UI,我想将提取的内容写入文本区域。但我得到了空指针异常。我调用textPanel的方式有问题 JumpHosts-(用于完整程序) 文本面板在大型机类中初始化: public class MainFrame extends JFrame{ private TextPanel textPanel; private Toolbars toolbar; private FormPanel f

该程序是JSch的一部分,以前用于读取输出内容,然后将其打印到控制台,但我制作了一个带有textPanel的UI,我想将提取的内容写入文本区域。但我得到了空指针异常。我调用textPanel的方式有问题

JumpHosts-(用于完整程序)

文本面板在大型机类中初始化:

public class MainFrame extends JFrame{

private TextPanel textPanel;
private Toolbars toolbar;
private FormPanel formPanel;;

public MainFrame() {

    super("ABC");

    setLayout(new BorderLayout());

    //setJMenuBar(createMenuBar());

    textPanel = new TextPanel();
    toolbar = new Toolbars();
    formPanel = new FormPanel();

    toolbar.setStringListener(new StringListeners() {
        public void textEmitter(String text) {
            textPanel.appendText(text);
        }
    });

    formPanel.setFormListener(new FormListener(){
        public void formEventOccured(FormEvent e){
            String name = e.getName();
            String occupation = e.getOccupation();

            textPanel.appendText(name + " : " + occupation + "\n");

        }       
    });

    add(textPanel,BorderLayout.CENTER);
    add(toolbar,BorderLayout.NORTH);
    add(formPanel,BorderLayout.WEST);

    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setMinimumSize(new Dimension(500, 400));
    setSize(600, 500);

}

你在哪里初始化了textPanel?如果有人问你“我有一个程序,我不会向你展示代码,它在某些未指定的条件下运行时在某个点抛出一个NPE”,你会如何帮助他们?@Raffaele希望这能有所帮助
public class TextPanel extends JPanel {

private JTextArea textArea;

public TextPanel(){

    setLayout(new BorderLayout());

    textArea = new JTextArea();

    add(new JScrollPane(textArea),BorderLayout.CENTER);
}

public void appendText(String tmp){

    textArea.append(tmp);

}
public class MainFrame extends JFrame{

private TextPanel textPanel;
private Toolbars toolbar;
private FormPanel formPanel;;

public MainFrame() {

    super("ABC");

    setLayout(new BorderLayout());

    //setJMenuBar(createMenuBar());

    textPanel = new TextPanel();
    toolbar = new Toolbars();
    formPanel = new FormPanel();

    toolbar.setStringListener(new StringListeners() {
        public void textEmitter(String text) {
            textPanel.appendText(text);
        }
    });

    formPanel.setFormListener(new FormListener(){
        public void formEventOccured(FormEvent e){
            String name = e.getName();
            String occupation = e.getOccupation();

            textPanel.appendText(name + " : " + occupation + "\n");

        }       
    });

    add(textPanel,BorderLayout.CENTER);
    add(toolbar,BorderLayout.NORTH);
    add(formPanel,BorderLayout.WEST);

    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setMinimumSize(new Dimension(500, 400));
    setSize(600, 500);

}