2010-10-31 3 views
0

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


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(); 
    } 
} 

У меня нет ошибок времени компиляции, я получаю эти ошибки при запуске.

 
Exception in thread "main" java.lang.NullPointerException 
    at java.awt.Container.addImpl(Container.java:1041) 
    at java.awt.Container.add(Container.java:927) 
    at App3.setup(App3.java:42) 
    at App3.(App3.java:16) 
    at App3.main(App3.java:58) 

Process completed. 
+0

Что не работает? Какая у вас ошибка? –

ответ

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

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

+0

Спасибо, что сработал. – Ramila

0

TextPanel равна нулю при попытке добавить его в панель содержимого:

c.add(textPanel, BorderLayout.CENTER); 
+0

Спасибо, я понимаю. – Ramila

0
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(); 
    } 

} 
+0

ITS работает сейчас – jayesh

Смежные вопросы