BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #21761同步于 2012/3/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

JTabbedPane函数问题

shoren
2012/3/16镜像同步1 回复
JTabbedPane中的函数public Component getTabComponentAt(int index)使用一直报错java.lang.NullPointerException,不知道是怎么回事。代码是网上找的,只加了一句,试验getTabComponentAt函数。 import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.event.ChangeListener; import javax.swing.event.ChangeEvent; import javax.swing.JTabbedPane; public class TabbedPaneFrame extends JFrame implements ChangeListener { private JPanel productPanel; private JPanel userPanel; private JTabbedPane tabbedPane; public TabbedPaneFrame() { super("JTabbedPane的事件监听"); init(); } public void init() { setSize(500,300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); productPanel = new JPanel(); productPanel.setName("商品信息面板"); //为面板设置名称 userPanel = new JPanel(); userPanel.setName("用户信息面板"); tabbedPane = new JTabbedPane(); tabbedPane.add("商品信息", productPanel); //将面板添加到选项卡中 tabbedPane.add("用户信息", userPanel); tabbedPane.addChangeListener(this); //添加监听器 this.getContentPane().add(tabbedPane); //将选项卡加入到窗口中 this.setVisible(true); } /** * 实现ChangeListener接口中的stateChanged方法 * 当侦听器的目标已更改其状态时调用 */ public void stateChanged(ChangeEvent e) { String name = tabbedPane.getSelectedComponent().getName(); System.out.println("你选中的面板名称 === " + name); tabbedPane.getTabComponentAt(0).setBackground(Color.black); } public static void main(String[] args) { new TabbedPaneFrame(); } } 报错如下: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at xd.src.TabbedPaneFrame.stateChanged(TabbedPaneFrame.java:44) at javax.swing.JTabbedPane.fireStateChanged(Unknown Source) at javax.swing.JTabbedPane$ModelListener.stateChanged(Unknown Source) at javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source) at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source) at javax.swing.JTabbedPane.setSelectedIndexImpl(Unknown Source) at javax.swing.JTabbedPane.setSelectedIndex(Unknown Source) at javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
shoren机器人#1 · 2012/3/16
额,解决了。。。