Вопрос

Я просто хочу распечатать выбранную опцию в поле комбо, в текстовое поле. Пожалуйста, объясните, что не так, потому что я должен завершить его и объяснить это в классе. Любая помощь будет очень ценится. Заранее спасибо.


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

public class App3 extends JFrame implements ActionListener
{
    private JPanel boxPanel,textPanel;
    private JLabel selectName,selectedName;
    private JComboBox nameCombo;
    private JTextField valueOfSelectedName;
    private Container c;

    public App3()
    {
        super("Combo example");
        setup();
        setSize(200,200);
        setLocation(50,50);
        show();
    }

    public void setup()
    {
        c = getContentPane();

        boxPanel = new JPanel();
        c.add(boxPanel,BorderLayout.NORTH);

        selectName = new JLabel("Select Name : ");
        selectedName = new JLabel("The selected Name : ");

        String[] names = {"Ramila","Hashan","Shaad","Gus","Mahasen","Hasaru","Shabba"};
        nameCombo = new JComboBox(names);
        nameCombo.addActionListener(this);

        valueOfSelectedName = new JTextField(10);

        boxPanel.add(selectName);
        boxPanel.add(nameCombo);

        c.add(textPanel,BorderLayout.CENTER);

        textPanel.add(selectedName);
        textPanel.add(valueOfSelectedName);

    }

    public void actionPerformed(ActionEvent e) 
    {
        JComboBox nameCombo = (JComboBox)e.getSource();
        String newSelection = (String)nameCombo.getSelectedItem();
        valueOfSelectedName.setText(newSelection);
    }

    public static void main(String args[])
    {
        App3 a = new App3();
    }
}

Я не получаю никаких временных ошибок с компиляцией, я получаю эти ошибки, когда я бегу.

Исключение в потоке "Главная" java.lang.nullpointexception на java.awt.container.addimpl (Container.java:1041) на java.awt.container.add (Container.java:927) в App3.setup (App3.java: 42) в App3. (App3.java:16) в процессе App3.main (App3.java:58) завершен.
Это было полезно?

Решение

private JPanel boxPanel,textPanel;
...
textPanel = new JPanel();

Следовательно, вы не создали объект JPanel, TextPanel указывает на NULL, поэтому исключение выдается. Создать объект и все должно работать нормально

Другие советы

TextPanel NULL, когда вы пытаетесь добавить его на панель контента:

c.add(textPanel, BorderLayout.CENTER);
import java.awt.*;

import java.awt.event.*;

import javax.swing.*;


public class App3 extends JFrame implements ActionListener
{
    private JPanel boxPanel,textPanel;

    private JLabel selectName,selectedName;

    private JComboBox nameCombo;

    private JTextField valueOfSelectedName;

    private Container c;


    public App3()
    {
        super("Combo example");
        setup();
        setSize(200,200);
        setLocation(50,50);
        show();
    }

    public void setup()
    {
        c = getContentPane();

        boxPanel = new JPanel();
        c.add(boxPanel,BorderLayout.NORTH);

        selectName = new JLabel("Select Name : ");
        selectedName = new JLabel("The selected Name : ");

        String[] names = {"Ramila","Hashan","Shaad","Gus","Mahasen","Hasaru","Shabba"};
        nameCombo = new JComboBox(names);
        nameCombo.addActionListener(this);

        valueOfSelectedName = new JTextField(10);

        boxPanel.add(selectName);
        boxPanel.add(nameCombo);

        textPanel = new JPanel(); // panel is not init that why its give error

        c.add(textPanel,BorderLayout.CENTER);

        textPanel.add(selectedName);
        textPanel.add(valueOfSelectedName);

    }

    public void actionPerformed(ActionEvent e) 
    {
        JComboBox nameCombo = (JComboBox)e.getSource();
        String newSelection = (String)nameCombo.getSelectedItem();
        valueOfSelectedName.setText(newSelection);
    }

    public static void main(String args[])
    {
        App3 a = new App3();
    }

}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top