import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; public class AddNewQuestionDiag extends JFrame { /* Debug main */ public static void main(String[] argv) { new AddNewQuestionDiag().setVisible(true); } private JPanel pane; private JLabel mTypeLabel; private JLabel mChoiceLabel; private JLabel mCodeLabel; private ButtonGroup mQuests; private JRadioButton mFillIn; private JRadioButton mTrueFalse; private JRadioButton mSingle; private JRadioButton mMulti; private JRadioButton mOutput; private JRadioButton mCode; private JButton mCancel; private JButton mNext; public AddNewQuestionDiag() { super("Add New Question"); pane = new JPanel(); mQuests = new ButtonGroup(); mQuests.add(mFillIn = new JRadioButton("Fill in the Blank")); mQuests.add(mTrueFalse = new JRadioButton("True/False")); mQuests.add(mSingle = new JRadioButton("Single Answer")); mQuests.add(mMulti = new JRadioButton("Multi Answer")); mQuests.add(mOutput = new JRadioButton("Grade by output")); mQuests.add(mCode = new JRadioButton("Grade by code")); mTypeLabel = new JLabel("Question Type:"); mChoiceLabel = new JLabel("Multiple Choice"); mCodeLabel = new JLabel("Code"); mCancel = new JButton(new AbstractAction("Cancel") { public void actionPerformed(ActionEvent evt) { dispose(); } }); mNext = new JButton(new AbstractAction("Next...Question Setup") { public void actionPerformed(ActionEvent evt) { new QuestionSetup().setVisible(true); dispose(); } }); setupLayout(); pack(); } private void setupLayout() { pane.setLayout(new GridBagLayout()); GridBagConstraints cons = new GridBagConstraints(); cons.anchor = GridBagConstraints.WEST; cons.gridwidth = 2; cons.gridx = 0; cons.gridy = 0; pane.add(mTypeLabel, cons); cons.gridy++; cons.insets = new Insets(0, 10, 0, 0); pane.add(mFillIn, cons); cons.gridy++; pane.add(mTrueFalse, cons); cons.gridy++; pane.add(mChoiceLabel, cons); cons.gridy++; cons.insets = new Insets(0, 20, 0, 0); pane.add(mSingle, cons); cons.gridy++; pane.add(mMulti, cons); cons.gridy++; cons.insets = new Insets(0, 10, 0, 0); pane.add(mCodeLabel, cons); cons.gridy++; cons.insets = new Insets(0, 20, 0, 0); pane.add(mOutput, cons); cons.gridy++; pane.add(mCode, cons); cons.gridy++; cons.insets = new Insets(0, 0, 0, 0); cons.gridwidth = 1; pane.add(mCancel, cons); cons.gridx++; pane.add(mNext, cons); getContentPane().add(pane); } }