注册 登录
编程论坛 JAVA论坛

大神来看看 为什么for 里面的标签添加不到面板里

java魔 发布于 2019-12-31 22:58, 1833 次点击
package student;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
public class StudentMain extends JFrame{
    private JPanel northP = new JPanel();   //该面板放在JFrame顶端
    private JPanel centerP = new JPanel();  //该面板放在JFrame中间
    //设置JFrame容器和在JFrame容器添加组件方法
    public void addJFrame(){
        this.setVisible(true);
        this.setSize(600,300);
        this.setTitle("小学生加减法");
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        this.setLayout(new BorderLayout());
        this.add(northP,BorderLayout.NORTH);    //将northP面板放在JFrame窗体顶端
        this.add(centerP,BorderLayout.CENTER);  //将centerP面板放在JFrame窗体中间
    }
    //创建放在顶端面板的内容
    private JLabel userL = new JLabel("输入名字:");    //标签 提示用户输入名字
    private JTextField userT = new JTextField(8);   //文本 用户输入名称的文本
    private JLabel numberL = new JLabel("出题数量:");  //标签 提示用户输入出题数量
    private JTextField numberT = new JTextField(8); //文本 用户输入出题数量的文本
    private JLabel rangeL = new JLabel("数值范围:");   //标签 提示用户输入数值范围的标签
    private JTextField rangeT = new JTextField(8);  //文本 用户输入数值范围的文本
    private JButton confirm = new JButton("确认");    //按钮 确认按钮
    private JLabel fraction = new JLabel("分数:");     //标签 显示分数:
    //创建方法 把上面的组件依次添加到northP面板中
    public void addnorthP() {                     //在northP面板添加组件的方法
        northP.add(userL);  northP.add(userT);    //添加用户名称标签和用户名称文本
        northP.add(numberL);  northP.add(numberT);
        northP.add(rangeL);  northP.add(rangeT);
        northP.add(confirm);  northP.add(fraction);
    }
    //以上是顶端面板设计 和JFrame设置和JFrame添加组件方法
    //--------------------------------------------------------------------------------------
    private int front[];
    private char symbol[];
    private int behind[];
    private int answer[];
    private String userS;              //接收textfield文本数据的字符串
    private String numberS;            //接收textfield文本数据的字符串
    private String rangeS;             //接收textfield文本数据的字符串
    private int numberI;               //把numberS字符串转换为int
    private int rangeI;                //把rangeS字符串转换为int
    //以上为数据类型
    public void dataMethod() {
        userS = userT.getText(); //uesrS获取文本数据
        numberS = numberT.getText(); //numberS获取文本数据
        rangeS = rangeT.getText();   //rangeS获取文本数据
        try {
        numberI = Integer.parseUnsignedInt(numberS);  //将numberS转换为int
        rangeI = Integer.parseInt(rangeS);    //将rangeS转换为int
        }catch(Exception e) {
            JOptionPane.showMessageDialog(null, "数据不能为空");
        }
    }
    //---------------------------------------------------------------------------------------
   
   
    public StudentMain() {
        addJFrame();
        addnorthP();
        confirm.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dataMethod();
            }
        });
        
        for(int i=0; i<numberI; i++) {
            centerP.add(new JLabel(i+" "));
        }
    }
   
    public static void main(String[] args) {
        new StudentMain();
    }
}
0 回复
1