我创建了一个JPanel,并在面板中添加了复选框。
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
这是我到目前为止的工作,这是一个一维数组,它在左侧显示了一列复选框。 如何在现有列旁边添加另一列。
public class UserInterface extends JFrame
{
private JPanel club;
private JCheckBox[] check = new JCheckBox[10];
public UserInterface()
{
super("SPORTS CLUB");
club=new JPanel();
add(club);
club.setLayout(new GridLayout(10,2));
check[0] = new JCheckBox("101");
check[1] = new JCheckBox();
check[2] = new JCheckBox();
check[3] = new JCheckBox();
check[4] = new JCheckBox();
check[5] = new JCheckBox();
check[6] = new JCheckBox();
check[7] = new JCheckBox();
check[8] = new JCheckBox();
check[9] = new JCheckBox();
club.setAlignmentY(JComponent.LEFT_ALIGNMENT);
for (int i = 0; i < 10; i++)
{
club.add(check[i]);
}
}
}
这是我的类Main包含main()函数;
import javax.swing.JFrame;
public class Main {
public static void main(String[] args)
{
UserInterface data=new UserInterface();
data.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
data.setSize(300,200);
data.setVisible(true);
}
}
感谢任何一点帮助,甚至欢迎参考。
答案 0 :(得分:2)
如何添加其他列
更改
// 10 rows, 2 columns
club.setLayout(new GridLayout(10,2));
为:
// variable number of rows, 2 columns
club.setLayout(new GridLayout(0, 2));
请注意,执行此操作时,每个奇数复选框都在左侧,甚至在右侧,因此,如果您希望特定列中的特定复选框,则添加顺序很重要。
答案 1 :(得分:0)
因此,如果我正确解释您的问题,您需要2列复选框吗? 首先不要将Arrays用于这样的任务,它们不是动态的,这使得代码有点难看。你甚至都不需要它。
首先,您要使用布局管理器网格创建JPanel:
JPanel grid = new JPanel(new GridLayout(0,2));
现在用Checkboxes填充面板,并为每个Checkbox提供自己的Action Command。通过这种方式,您可以更好地使用Listeners。
for(int i = 0; i < 10; i++){
JCheckbox c = new JCheckbox();
c.setActionCommand(i);
grid.add(c);
}
这是一种比使用数组更优雅的解决方案。希望这有帮助