空指针是你的label[]数组没有初始化。
你试一下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class tables implements ActionListener
{
String[] BigProblem={"大问题一","大问题二"};
String[] problem={"问题一","问题二","问题三","问题四","问题五","问题六","问题七",
"问题八","问题九","问题十"};
Font fonts=new Font("宋体",Font.PLAIN,12);
JFrame aWindow=null;
JCheckBox[] checkBox;
JPanel panel=null;
JLabel[] label = new JLabel[10];
int wid = 20;
int hei = 20;
public tables()
{
aWindow=new JFrame("Testing.....");
Container content=aWindow.getContentPane();
Toolkit theKit=aWindow.getToolkit();
Dimension wndSize=theKit.getScreenSize();
aWindow.setBounds(0,0,wndSize.width,wndSize.height);
JButton button1=new JButton("动态生成控件");
button1.setFont(fonts);
button1.addActionListener(this);
panel=new JPanel();
content.add(panel);
panel.setLayout(new FlowLayout());
panel.add(button1,null); // button1.setLocation(wid,hei);
aWindow.setVisible(true);
aWindow.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
//JOptionPane.showMessageDialog(aWindow,"事件成功","窗体信息",
//JOptionPane.PLAIN_MESSAGE);
int big=BigProblem.length;
int small=problem.length;
for(int i=0;i<big;i++)
{
System.out.println(BigProblem[i]);
JLabel labe=new JLabel(BigProblem[i]);
//label[i].setText(BigProblem[i]);
panel.add(labe,null);
//label[i].setLocation(wid+20,hei+20);
}
this.panel.updateUI();
}
public static void main(String[] args)
{
new tables();
}
}
你试一下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class tables implements ActionListener
{
String[] BigProblem={"大问题一","大问题二"};
String[] problem={"问题一","问题二","问题三","问题四","问题五","问题六","问题七",
"问题八","问题九","问题十"};
Font fonts=new Font("宋体",Font.PLAIN,12);
JFrame aWindow=null;
JCheckBox[] checkBox;
JPanel panel=null;
JLabel[] label = new JLabel[10];
int wid = 20;
int hei = 20;
public tables()
{
aWindow=new JFrame("Testing.....");
Container content=aWindow.getContentPane();
Toolkit theKit=aWindow.getToolkit();
Dimension wndSize=theKit.getScreenSize();
aWindow.setBounds(0,0,wndSize.width,wndSize.height);
JButton button1=new JButton("动态生成控件");
button1.setFont(fonts);
button1.addActionListener(this);
panel=new JPanel();
content.add(panel);
panel.setLayout(new FlowLayout());
panel.add(button1,null); // button1.setLocation(wid,hei);
aWindow.setVisible(true);
aWindow.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
//JOptionPane.showMessageDialog(aWindow,"事件成功","窗体信息",
//JOptionPane.PLAIN_MESSAGE);
int big=BigProblem.length;
int small=problem.length;
for(int i=0;i<big;i++)
{
System.out.println(BigProblem[i]);
JLabel labe=new JLabel(BigProblem[i]);
//label[i].setText(BigProblem[i]);
panel.add(labe,null);
//label[i].setLocation(wid+20,hei+20);
}
this.panel.updateUI();
}
public static void main(String[] args)
{
new tables();
}
}
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;public class tables implements ActionListener
{
String[] BigProblem={"big1","big2"};
String[] problem={"1","2","3","4","5","6","7","8","9","10"}; JFrame aWindow=null;
JCheckBox[] checkBox;
JPanel panel=null;
JLabel[] label = new JLabel[BigProblem.length];;
public tables()
{
aWindow=new JFrame("Testing.....");
panel=new JPanel();
JButton button1=new JButton("Dynamic Create"); aWindow.setBounds(0,0, 300,300);
aWindow.getContentPane().add(panel);
panel.add(button1);
button1.addActionListener(this);
aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
aWindow.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(aWindow,"Sucess","Frame Info",
JOptionPane.PLAIN_MESSAGE);
int big=BigProblem.length;
int small=problem.length;
for(int i=0;i<big;i++)
{
label[i]=new JLabel(BigProblem[i]);
panel.add(label[i]);
panel.validate();
System.out.println(label[i]);
}
}
public static void main(String[] args)
{
new tables();
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class tables implements ActionListener
{
String[] BigProblem={"大问题一","大问题二"};
String[] problem={"问题一","问题二","问题三","问题四","问题五","问题六","问题七",
"问题八","问题九","问题十"};
Font fonts=new Font("宋体",Font.PLAIN,12);
JFrame aWindow=null;
JCheckBox[] checkBox;
JPanel panel=null;
JLabel[] label = new JLabel[10];
int wid = 20;
int hei = 20;
public tables()
{
aWindow=new JFrame("Testing.....");
Container content=aWindow.getContentPane();
Toolkit theKit=aWindow.getToolkit();
Dimension wndSize=theKit.getScreenSize();
aWindow.setBounds(0,0,wndSize.width,wndSize.height);
JButton button1=new JButton("动态生成控件");
button1.setFont(fonts);
button1.addActionListener(this);
panel=new JPanel();
content.add(panel);
panel.setLayout(new FlowLayout());
panel.add(button1,null); button1.setLocation(wid,hei);
aWindow.setVisible(true);
aWindow.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
int big=BigProblem.length;
int small=problem.length;
for(int i=0;i<big;i++)
{
label[i].setText(BigProblem[i]);
panel.add(label[i]);
//label[i].setLocation(wid+20,hei+20);
}
this.panel.updateUI();
}
public static void main(String[] args)
{
new tables();
}
}
谢谢。
你只是分配了数组空间,实际上还未初始化。