我做了什么?
在JFrame中处理了10个JCheckBox。前A,B,C,..
为每个JCheckBox处理10个JFrame作为例如,JFrame A,JFrame B,JFrameC,..
-Created ArrayList,用于存储JCheckBox的值,无论它是否被选中。
为JFrames处理了ArrayList,并且每个帧都被添加到其中。
我想做什么?
当我点击'next'时,选择多个CheckBox后,将出现First CHECKED BOX的第一个JFrame。
考虑示例:我选中了复选框B,C,F,H之后,我将点击“下一步”,JFrame B将出现。现在我将输入数据并再次点击“下一步”它将检查下一个选中的CheckBox,并且JFrame将显示为此处C.然后JFrame F&最后JFrame H。
我该怎么做?
答案 0 :(得分:0)
将您想要的任何输入数据添加到InputPanel类中。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class TestGUI {
JFrame frame;
ArrayList<JCheckBox> checkBoxes = new ArrayList<JCheckBox>();
JButton next = new JButton("Next");
public TestGUI() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
for (int i = 1; i <= 10; i++) {
JCheckBox box = new JCheckBox(Integer.toString(i));
box.setName(Integer.toString(i));
checkBoxes.add(box);
frame.add(box);
}
next.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
for (int i = 0; i < checkBoxes.size(); i++) {
if (checkBoxes.get(i).isSelected()) {
InputPanel panel = new InputPanel();
int choice = JOptionPane.showConfirmDialog(frame,
panel, "Get info for checkbox "
+ checkBoxes.get(i).getName(),
JOptionPane.OK_CANCEL_OPTION);
if (choice == JOptionPane.OK_OPTION) {
System.out.println(panel.getText());
}
}
}
}
});
frame.add(next);
frame.pack();
frame.setVisible(true);
}
private class InputPanel extends JPanel {
private JLabel label = new JLabel("Get some info");
private JTextField text = new JTextField(10);
public InputPanel() {
add(label);
add(text);
}
public String getText() {
return text.getText();
}
}
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
TestGUI gui = new TestGUI();
}
});
}
}