Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建';x';Java中复选框的行数 import java.awt.Button; 导入java.awt.Dimension; 导入java.awt.GridLayout; 导入java.awt.TextField; 导入java.awt.event.ActionEvent; 导入java.awt.event.ActionListener; 导入javax.swing.JCheckBox; 导入javax.swing.JFrame; 导入javax.swing.JPanel; 公共类状态扩展JFrame实现ActionListener { 私有TextField tf1=新TextField(); 专用按钮btn=新按钮(“部署”); JPanel网格; 公众地位() { 新JPanel(新网格布局(0,2)); tf1.设置尺寸(新尺寸(40,40)); btn.设置尺寸(新尺寸(30,30)); grid.add(tf1); 网格添加(btn); } @凌驾 已执行的公共无效行动(行动事件ae){ 如果(ae.getSource()==btn) { intx=Integer.parseInt(tf1.getText()); //复选框[][]a={新复选框(“1”}; 对于(int i=0;i_Java_Arrays_Multidimensional Array_Checkbox_Awt - Fatal编程技术网

创建';x';Java中复选框的行数 import java.awt.Button; 导入java.awt.Dimension; 导入java.awt.GridLayout; 导入java.awt.TextField; 导入java.awt.event.ActionEvent; 导入java.awt.event.ActionListener; 导入javax.swing.JCheckBox; 导入javax.swing.JFrame; 导入javax.swing.JPanel; 公共类状态扩展JFrame实现ActionListener { 私有TextField tf1=新TextField(); 专用按钮btn=新按钮(“部署”); JPanel网格; 公众地位() { 新JPanel(新网格布局(0,2)); tf1.设置尺寸(新尺寸(40,40)); btn.设置尺寸(新尺寸(30,30)); grid.add(tf1); 网格添加(btn); } @凌驾 已执行的公共无效行动(行动事件ae){ 如果(ae.getSource()==btn) { intx=Integer.parseInt(tf1.getText()); //复选框[][]a={新复选框(“1”}; 对于(int i=0;i

创建';x';Java中复选框的行数 import java.awt.Button; 导入java.awt.Dimension; 导入java.awt.GridLayout; 导入java.awt.TextField; 导入java.awt.event.ActionEvent; 导入java.awt.event.ActionListener; 导入javax.swing.JCheckBox; 导入javax.swing.JFrame; 导入javax.swing.JPanel; 公共类状态扩展JFrame实现ActionListener { 私有TextField tf1=新TextField(); 专用按钮btn=新按钮(“部署”); JPanel网格; 公众地位() { 新JPanel(新网格布局(0,2)); tf1.设置尺寸(新尺寸(40,40)); btn.设置尺寸(新尺寸(30,30)); grid.add(tf1); 网格添加(btn); } @凌驾 已执行的公共无效行动(行动事件ae){ 如果(ae.getSource()==btn) { intx=Integer.parseInt(tf1.getText()); //复选框[][]a={新复选框(“1”}; 对于(int i=0;i,java,arrays,multidimensional-array,checkbox,awt,Java,Arrays,Multidimensional Array,Checkbox,Awt,这是我的代码。我想创建“x”行复选框,其中“x”是用户通过文本字段输入的数值。复选框的每一行(无论值是多少)都应包含8个复选框。请帮助!我更改了代码以执行您希望它执行的操作。 请使用我添加的许多注释进行跟踪: import java.awt.Button; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.TextField; import java.awt.event.ActionEvent; impo

这是我的代码。我想创建“x”行复选框,其中“x”是用户通过文本字段输入的数值。复选框的每一行(无论值是多少)都应包含8个复选框。请帮助!

我更改了代码以执行您希望它执行的操作。
请使用我添加的许多注释进行跟踪:

import java.awt.Button;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Status extends JFrame implements ActionListener
{
    private TextField tf1 = new TextField();
    private Button btn = new Button("Deploy");
    JPanel grid;
    public Status()
    {
        new JPanel(new GridLayout(0, 2));
        tf1.setSize(new Dimension(40,40));
        btn.setSize(new Dimension(30,30));

        grid.add(tf1);
        grid.add(btn);
    }

    @Override
    public void actionPerformed(ActionEvent ae) {
        if(ae.getSource() == btn)
        {
            int x = Integer.parseInt(tf1.getText());
            //Checkbox [][] a = {new Checkbox("1"};
            for (int i = 0; i < x; i++)
            {
                JCheckBox jc = new JCheckBox(""+i); 
                grid.add(jc);
            }

        }

    }

}
导入java.awt.BorderLayout;
导入java.awt.Button;
导入java.awt.GridLayout;
导入java.awt.TextField;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入javax.swing.JCheckBox;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JPanel;
导入javax.swing.SwingUtilities;
公共类状态扩展JFrame实现ActionListener
{
私有TextField tf1=新TextField();
专用按钮btn=新按钮(“部署”);
私有JPanel网格;
私有静态final int COLUMNS=8;
公众地位()
{
//您忘记将其分配到网格
grid=newjpanel(newgridlayout(0,COLUMNS));//0表示任意数量的行
tf1.setColumns(5);//按列数设置六
//btn.设置尺寸(新尺寸(30,30));
//无需为btn设置大小,但必须添加
//它的行动侦听器
btn.addActionListener(此);
//创建用于容纳控件的面板
JPanel controls=new JPanel();//默认情况下使用FlowLayout
//向其中添加控件
添加(新的JLabel(“要添加的复选框数”);
controls.add(tf1);controls.add(btn);
//创建一个面板以容纳网格和控件
JPanel主面板=新JPanel(新边界布局(5,5));
//在其顶部添加控件
主面板。添加(控件,BorderLayout.NORTH);
//将栅格添加到其中心
主面板。添加(网格、边框布局。中心);
//将主面板添加到框架
添加(主面板);
//进行jframe设置
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
包装();
setVisible(真);
}
@凌驾
已执行的公共无效行动(行动事件ae){
如果(ae.getSource()==btn)
{
//用try-catch环绕以防止错误输入
int numberOfRows=Integer.parseInt(tf1.getText());
for(int row=0;rownewstatus());
}
}

如果需要,请不要犹豫要求澄清。

您的程序目前输出了什么?@RyanJ是一个空指针异常。呃,谢谢您的快速回复!但是我不太了解您在main()即SwingUtilities中实现了什么。它做了什么?它在上运行
new Status()
。如果您愿意,可以忽略它(将其替换为
新状态();
)当你准备好了再回来。嗨!谢谢你的解释。但我希望程序生成“x”行复选框。每行有8个复选框。你的临时代码生成“x”行复选框。我想要“x”行复选框。这个网站的目的不是为你写代码。目的是帮助你理解需要做什么。如果发布的代码没有帮助,我很抱歉。不要抱歉。您的代码确实帮助了我。再次感谢,如果感觉我是在要求您为我编写代码,我也很抱歉。
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.GridLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class Status extends JFrame implements ActionListener
{
    private TextField tf1 = new TextField();
    private Button btn = new Button("Deploy");
    private JPanel grid;
    private static final int COLUMNS = 8;

    public Status()
    {
        //you forgot to assign it to grid
        grid = new JPanel(new GridLayout(0, COLUMNS)); //0 means any number of rows
        tf1.setColumns(5);// set sixe by number of columns
        //btn.setSize(new Dimension(30,30));
        //there is no need to set size to the btn, but you must add the
        //action listener to it
        btn.addActionListener(this);

        //create a panel to hold controls
        JPanel controls = new JPanel(); //uses FlowLayout by default
        //add controls to it
        controls.add(new JLabel("Number of checkboxes to add "));
        controls.add(tf1);     controls.add(btn);

        //create a panel to hold grid and controls
        JPanel mainPanel = new JPanel(new BorderLayout(5,5));
        //add controls at its top
        mainPanel.add(controls, BorderLayout.NORTH);
        //add grid to its center
        mainPanel.add(grid, BorderLayout.CENTER);
        //add mainPanel to frame
        add(mainPanel);

        //do jframe setting
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent ae) {

        if(ae.getSource() == btn)
        {
            //surround with try - catch to protect from wrong input
            int numberOfRows = Integer.parseInt(tf1.getText());
            for (int row = 0; row < numberOfRows; row++)
            {
                for(int col = 0; col< COLUMNS ; col++) {
                    JCheckBox jc = new JCheckBox(""+row+""+col);
                    grid.add(jc);
                }
            }
        }
        pack();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(()-> new Status());
    }
}