这个方法是创建一个jtabbedpane,标签的个数是从数据库取出的,并且标签可以关闭,我这里创建的控件都是报空指针错误,请大神看看哦public void northjp()
{
jtbc=new JTabbedPane(JTabbedPane.NORTH);
 ResultSet rs=fm.selectClass();
 int zhnum=fm.selectnum(1);//这是先查询一下需要创建控件的个数
 JPanel[] jptab=new JPanel[zhnum];
 JButton[] closebutton=new JButton[zhnum];
 JLabel[] jlname=new JLabel[zhnum];//这都是创建的控件数组
 Dimension di=new Dimension(10, 10);//设置标签上关闭按钮的大小
 
 try {
for (int i = 0; i <zhnum;  i++) {
if(rs.next())
{
String jname=rs.getString(1);//得到标签的名字
num=rs.getInt(2);//得到标签内容里的jtable
jptab[i].setOpaque(false);
jlname[i].setText(jname);
closebutton[i].setText("x");

closebutton[i].setPreferredSize(di);
closebutton[i].addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
int closetabnum=jtbc.indexOfComponent(createCf(num));
System.out.println(closetabnum);
//jtbc.remove(closetabnum);
}
});
jptab[i].add(jlname[i],BorderLayout.WEST);
jptab[i].add(closebutton[i],BorderLayout.EAST);
jtbc.addTab(null, createCf(num));
jtbc.setTabComponentAt(jtbc.getTabCount()-1, jptab[i]);
System.out.println(i);
}
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
db.closeurl();
}
jtbc.setBounds(0, 0, 790, 220);
jpa.add(jtbc);
}求大神解答!~