我已经有一个句子的集合(列表)。所以我需要把每一个句子都放在一个复选框中。复选框的数量取决于矢量大小的数量。例如,我有 50 个句子,所以我需要 50 个复选框。然后用户可以检查要写入文本文件的所需句子。下面的类(ViewerFrame)应该构建一个框架,使其具有与数组列表(ManualSummarySys.sentences)中的句子数量相同的许多复选框。类(ManualSummarySys)运行良好。
public class ViewerFrame {
import java.awt.BorderLayout ;
import java.awt.Font ;
import java.awt.GridLayout ;
import java.awt.ScrollPane ;
import java.awt.event.ActionEvent ;
import java.awt.event.ActionListener ;
import java.util.ArrayList ;
import java.util.List ;
import javax.swing.ButtonGroup ;
import javax.swing.JButton ;
import javax.swing.JCheckBox ;
import javax.swing.JComboBox ;
import javax.swing.JFrame ;
import javax.swing.JLabel ;
import javax.swing.JPanel ;
import javax.swing.JRadioButton ;
import javax.swing.border.EtchedBorder ;
import javax.swing.border.TitledBorder ;
import javax.swing.plaf.metal.MetalBorders ;
public class ViewerFrame extends JFrame {
private static final int FRAME_WIDTH = 10;
private static final int FRAME_HEIGHT = 5;
private JLabel sampleField;
private List<JCheckBox> checkboxes = new ArrayList<JCheckBox>();
private ActionListener listener;
public ViewerFrame() {
sampleField = new JLabel("choose your prefered sentences");
add(sampleField, BorderLayout.WEST);
class ChoiceListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
}
}
listener = new ChoiceListener();
createControlPanel();
setSize(FRAME_WIDTH, FRAME_HEIGHT);
add(this.createCheckBoxes());
}
public void createControlPanel() {
JFrame sizeGroupPanel = createCheckBoxes();
JPanel controlPanel = new JPanel();
controlPanel.setLayout(new GridLayout(3, 1));
controlPanel.add(sizeGroupPanel);
controlPanel.add(styleGroupPanel);
add(controlPanel, BorderLayout.LINE_START);
}
public JFrame createCheckBoxes() {
JFrame frame = new JFrame("Sentences");
frame.setBorder(new TitledBorder(new EtchedBorder(), "Sentences"));
for (int i = 0; i < ManualSummarySys.sentences.size(); i++) {
JCheckBox checkbox = new JCheckBox(ManualSummarySys.sentences.get(i));
checkboxes.add(checkbox);
checkbox.addActionListener(listener);
frame.add(checkbox);
}
return frame;
}
}