问题描述
我正在开发一个简单的待办事项列表"应用程序,其中涉及获取要做的事情"从数据库的某一天开始,并将其显示为搁在框架上的面板上的复选框文本.有一个完成"按钮,可用于删除任务完成后,勾选的复选框.
I am developing a simple "To-do List" application which involves obtaining 'things to do' fora particular day from the database and displaying them as checkbox text on a panel resting on a frame.There is a button "done" which can be used to removethe ticked checkboxes after a task is complete.
用于动态创建复选框的代码如下所示:
The code that I used for the dynamic creation of the checkboxes is shown below:
//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();
}
在运行代码时,它显示的所有内容都是带有面板的空白框.有人可以帮我弄清楚为什么不显示复选框吗?预先感谢.
On running the code all it displays is an empty frame with the panel. Could someone help me figure out why the check boxes are not being displayed?Thanks in advance.
推荐答案
尝试一下.这使您可以创建随机数量的复选框...
Try this. This allows you to create a random number of check boxes...
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);
}
}
}
这篇关于在Java-NetBeans中动态创建dcheckbox的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!