Java 向JComboBox添加操作侦听器
我只想将组合框中选定的选项打印到文本字段中。请解释什么是错的,因为我必须在课堂上完成并解释。任何帮助都将不胜感激。提前谢谢Java 向JComboBox添加操作侦听器,java,jcombobox,actionlistener,Java,Jcombobox,Actionlistener,我只想将组合框中选定的选项打印到文本字段中。请解释什么是错的,因为我必须在课堂上完成并解释。任何帮助都将不胜感激。提前谢谢 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class App3 extends JFrame implements ActionListener { private JPanel boxPanel,textPanel; private JLabel s
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.
我没有得到任何编译时错误,我在运行它时得到了这些错误
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.
线程“main”java.lang.NullPointerException中出现异常
位于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)
进程已完成。
尝试将textPanel添加到内容窗格时,textPanel为空: 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.
c.add(textPanel, BorderLayout.CENTER);
您尚未创建JPanel对象,因此textPanel指向null,这就是引发异常的原因。创建对象,一切都应该正常运行什么不正常?你有什么错误? 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.
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();
}
}