[英]Creating dcheckbox dynamically in Java-NetBeans
我正在开发一个简单的“待办事项列表”应用程序,该应用程序涉及从数据库中获取特定日期的“要做的事情”,并将其作为复选框文本显示在框架上的面板上。有一个按钮“完成”可以用于在任务完成后删除勾选的复选框。
我用于动态创建复选框的代码如下所示:
//cnt-variable used to store the number of tasks for a day
//rs1-ResultSet variable into which the task description is read into.
//DATA-variable with 'to-do' description
for(int i=0;i<cnt&&rs1.next();i++)
{
String s2=rs1.getString("DATA");
JCheckBox cb = new JCheckBox("New CheckBox");
cb.setText(s2);
cb.setVisible(true);
jPanel1.add(cb);
jPanel1.validate();
}
在运行代码时,它显示的是带有面板的空框架。 有人可以帮我弄清楚为什么没有显示复选框? 提前致谢。
尝试这个。 这允许您创建一个随机数量的复选框...
public class TestCheckboxes {
public static void main(String[] args) {
new TestCheckboxes();
}
public TestCheckboxes() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new CheckBoxPane());
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class CheckBoxPane extends JPanel {
private JPanel content;
public CheckBoxPane() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.weighty = 1;
gbc.anchor = GridBagConstraints.CENTER;
content = new JPanel(new GridBagLayout());
add(content, gbc);
JButton more = new JButton("More");
more.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
content.removeAll();
int count = 10 + (int) Math.round(Math.random() * 90);
System.out.println(count);
for (int index = 0; index < count; index++) {
gbc.gridx++;
if (index % 8 == 0) {
gbc.gridx = 0;
gbc.gridy++;
}
content.add(new JCheckBox(Integer.toString(index)), gbc);
}
content.revalidate();
repaint();
}
});
gbc.gridy++;
gbc.weightx = 0;
gbc.weighty = 0;
add(more, gbc);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.