创建';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”行复选框,其中“x”是用户通过文本字段输入的数值。复选框的每一行(无论值是多少)都应包含8个复选框。请帮助!我更改了代码以执行您希望它执行的操作。创建';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
请使用我添加的许多注释进行跟踪:
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());
}
}