Java JTextField提示空指针异常

myusn 2011-06-21 01:17:17

public class manageBikePanel extends JPanel {

private JTextField bikeIDF;
private JTextField bikeNameF;
private JTextField bikeTypeF;
private JTextField bikeBrandF;
private JTextField bikeSupplierF;
//private JTextField supplierNameT;
private JTextField importPriceF;
private JTextField salePriceF;
private JTextField importCycleF;
//private JComboBox bikeTypeBox;
private JComboBox bikeBox;
//private JComboBox supplierBox;
private JButton resetButton;

public manageBikePanel() {
setLayout(new GridBagLayout());
setBounds(10, 10, 510, 302);

setupComponet(new JLabel("选择自行车:"), 0, 0, 1, 1, false);
bikeBox = new JComboBox();
bikeBox.setPreferredSize(new Dimension(1, 21));
initComboBox();// 初始化下拉选择框
// 处理供应商信息的下拉选择框的选择事件
bikeBox.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
doBikeSelectAction();
}
});
setupComponet(bikeBox, 1, 0, 1, 160, true);

setupComponet(new JLabel("自行车名称:"), 2, 0, 1, 1, false);
bikeNameF = new JTextField();
setupComponet(bikeNameF, 3, 0, 1, 160, true);

setupComponet(new JLabel("自行车型号:"), 0, 1, 1, 1, false);
bikeIDF = new JTextField();
setupComponet(bikeIDF, 1, 1, 1, 0, true);

setupComponet(new JLabel("自行车类型:"), 2, 1, 1, 1, false);
bikeTypeF = new JTextField();
//supplierPostT.addKeyListener(new InputKeyListener());
setupComponet(bikeTypeF, 3, 1, 1, 0, true);

setupComponet(new JLabel("品牌:"), 0, 2, 1, 1, false);
bikeBrandF = new JTextField();
//supplierTelT.addKeyListener(new InputKeyListener());
setupComponet(bikeBrandF, 1, 2, 1, 0, true);

setupComponet(new JLabel("供应商:"), 2, 2, 1, 1, false);
bikeSupplierF = new JTextField();
setupComponet(bikeSupplierF, 3, 2, 1, 0, true);

setupComponet(new JLabel("进价:"), 0, 3, 1, 1, false);
importPriceF = new JTextField();
importPriceF.addKeyListener(new InputKeyListener());
setupComponet(importPriceF, 1, 3, 1, 0, true);

setupComponet(new JLabel("售价:"), 2, 3, 1, 1, false);
salePriceF = new JTextField();
salePriceF.addKeyListener(new InputKeyListener());
setupComponet(salePriceF, 3, 3, 1, 0, true);

setupComponet(new JLabel("进货周期:"), 0, 4, 1, 1, false);
importCycleF = new JTextField();
importCycleF.addKeyListener(new InputKeyListener());
setupComponet(importCycleF, 1, 4, 1, 0, true);

JButton modifyButton = new JButton("修改");
JButton delButton = new JButton("删除");
JPanel panel = new JPanel();
panel.add(modifyButton);
panel.add(delButton);
// 定位按钮
setupComponet(panel, 3, 6, 1, 0, false);
// 处理删除按钮的单击事件
delButton.addActionListener(new DelActionListener());
// 处理修改按钮的单击事件
modifyButton.addActionListener(new ModifyActionListener());
}
// 初始化供应商下拉选择框

public void initComboBox() {
List bikeInfo = dao.getBikeInfos();
List<item> items = new ArrayList<item>();
bikeBox.removeAllItems();
for (Iterator iter = bikeInfo.iterator(); iter.hasNext();) {
List element = (List) iter.next();
item item = new item();
item.setId(element.get(0).toString().trim());
item.setName(element.get(1).toString().trim());
if (items.contains(item)) {
continue;
}
items.add(item);
bikeBox.addItem(item);
}
doBikeSelectAction();
}
// 设置组件位置并添加到容器中

private void setupComponet(JComponent component, int gridx, int gridy,
int gridwidth, int ipadx, boolean fill) {
final GridBagConstraints gridBagConstrains = new GridBagConstraints();
gridBagConstrains.gridx = gridx;
gridBagConstrains.gridy = gridy;
if (gridwidth > 1) {
gridBagConstrains.gridwidth = gridwidth;
}
if (ipadx > 0) {
gridBagConstrains.ipadx = ipadx;
}
gridBagConstrains.insets = new Insets(5, 1, 3, 1);
if (fill) {
gridBagConstrains.fill = GridBagConstraints.HORIZONTAL;
}
add(component, gridBagConstrains);
}
// 处理供应商选择事件

private void doBikeSelectAction() {
item selectedItem;
if (!(bikeBox.getSelectedItem() instanceof item)) {
return;
}
selectedItem = (item) bikeBox.getSelectedItem();
bikeInfo info = dao.getBikeInfo(selectedItem);
if (!info.getBikeID().isEmpty()) {
bikeIDF.setText(info.getBikeID());0000]从这里提示空指针异常[/color]
bikeNameF.setText(info.getBikeName());
bikeTypeF.setText(info.getBikeType());
bikeBrandF.setText(info.getBikeBrand());
bikeSupplierF.setText(info.getBikeSupplier());
importPriceF.setText(String.valueOf(info.getImportPrice()));
salePriceF.setText(String.valueOf(info.getSalePrice()));
importCycleF.setText(String.valueOf(info.getImportCycle()));
}
}
}

错误提示
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at internalFrame.mangeBike.manageBikePanel.doBikeSelectAction(manageBikePanel.java:164)
at internalFrame.mangeBike.manageBikePanel.initComboBox(manageBikePanel.java:131)
at internalFrame.mangeBike.manageBikePanel.<init>(manageBikePanel.java:55)
at internalFrame.manageBike.<init>(manageBike.java:29)
at com.mainFram.systemFrame1.jButton2ActionPerformed(systemFrame1.java:146)
at com.mainFram.systemFrame1.access$100(systemFrame1.java:20)
at com.mainFram.systemFrame1$2.actionPerformed(systemFrame1.java:59)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
...全文
234 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
myusn 2011-07-01
  • 打赏
  • 举报
回复
谢谢各位的回帖 是先调用了initComboBox()导致空指针异常
chenchenyangll 2011-06-21
  • 打赏
  • 举报
回复
这个异常的说明那么明显了 = = 164行。。。你也找到位置了,异常信息是空指针。。。这还需要说什么呢 = =
albertshaw 2011-06-21
  • 打赏
  • 举报
回复
initComboBox();// 初始化下拉选择框


这一句放得太靠前了
你的bikeIDF = new JTextField();还没执行,所以对bikeIDF报空指针了.

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧