package miw2; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.Box; import javax.swing.ButtonGroup; import javax.swing.JRadioButton; /** * Class contains list of RadioButtons and OK button. * @author Filip */ public class MyRBForm extends javax.swing.JFrame { /** * List of selected values, always one can be selected at once. */ public static List checked; /** * List of RadioButtons. */ public static List cBox; /** * Used to avoid selecting more than one RadioButton at once. */ ButtonGroup group; /** * Returned value,can be from 1 to number of RadioButtons. */ public static int retVal; /** * Create RadioButton Form. By default first RadioButton is selected. * @param list list of values to choose. * @param title question. */ public MyRBForm(String[] list, String[] title) { retVal = 0; group = new ButtonGroup(); if (cBox == null) { cBox = new ArrayList(); } else { cBox.clear(); } Box bx = Box.createVerticalBox(); for (int i = 0; i < list.length; i++) { cBox.add(new JRadioButton(list[i])); group.add(cBox.get(i)); bx.add(cBox.get(i)); if(i == 0) cBox.get(i).setSelected(true); } this.add(bx); this.setTitle(title[0]); this.pack(); this.setDefaultCloseOperation(MyRBForm.DO_NOTHING_ON_CLOSE); this.setResizable(false); initComponents(); this.setLocationRelativeTo(null); } /** * Do loop until button OK is pressed. * @return number of selected RadionButton. */ public static int getValue() { while(retVal == 0){ try { Thread.sleep(100); } catch (InterruptedException ex) { Logger.getLogger(MyRBForm.class.getName()).log(Level.SEVERE, null, ex); } } return retVal; } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // private void initComponents() { jButton1 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jButton1.setText("OK"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .addContainerGap(247, Short.MAX_VALUE) .add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 96, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .addContainerGap(285, Short.MAX_VALUE) .add(jButton1) .addContainerGap()) ); pack(); }// private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: checked = new ArrayList(); Iterator it = cBox.iterator(); int i=1; while (it.hasNext()) { JRadioButton box = (JRadioButton) it.next(); if (box.isSelected()) { checked.add(box.getText()); retVal =i; } i++; } this.dispose(); } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new MyRBForm(new String[]{"jeden", "dwa","trzy"}, new String[]{"Title"}).setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton jButton1; // End of variables declaration }