如何在运行时添加单选按钮

时间:2013-06-16 20:47:54

标签: java swing jtable jradiobutton

我正在使用Netbeans 7.1和M​​ySQL。 我需要jtable中的1列,其中包含jradiobutton,用户可以选择任何1行的jradiobutton 请参阅图中的详细信息。选择RB后,将对jbutton点击事件进行进一步处理。

enter image description here

这是代码 -

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        final Object[] columnNames=new String[] {"Date","Flight Name","Departure Time","BC Seats Available","XC Seats Available","EC Seats Available"};
        DefaultTableModel dtm=new DefaultTableModel(columnNames,0);        
        String origin=jComboBox3.getSelectedItem().toString();
        String target=jComboBox4.getSelectedItem().toString();
        String fclass=jComboBox1.getSelectedItem().toString();
        String search = "";
        Date dt;

        //Economy Class Processing

        try
        {
           smt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
           rs = smt.executeQuery(sql);
           int i = 0;
           SimpleDateFormat sdf= new SimpleDateFormat("dd-MM-yyyy");
           boolean empty=true;
           String var1="", var2="", var3="", var4="", var5="";
           while(rs.next())
           {
               empty=false;
               var1=rs.getString(1);
               strdtver1=(String) sdf.format(rs.getDate(2));
               var2=Integer.toString(rs.getInt(3));
               var3=Integer.toString(rs.getInt(4));
               var4=Integer.toString(rs.getInt(5));
               var5=rs.getString(6);
               dtm.addRow(new Vector());
               dtm.setValueAt(strdtver1, i, 0);
               dtm.setValueAt(var1, i, 1);
               dtm.setValueAt(var5, i, 2);
               dtm.setValueAt(var2, i, 3);
               dtm.setValueAt(var3, i, 4);
               dtm.setValueAt(var4, i, 5);
               i++;

           }
           if(empty)
           {
               dtm.addRow(new Vector());
               strdtver2=(String) sdf.format(jDateChooser1.getDate());
               dtm.setValueAt(strdtver2, i, 0);
               dtm.setValueAt("No Flights", i, 1);
               dtm.setValueAt("No Flights", i, 2);
               dtm.setValueAt("0", i, 3);
               dtm.setValueAt("0", i, 4);
               dtm.setValueAt("0", i, 5);
           }
           jTable1.setModel(dtm);
           TableColumnModel m=jTable1.getColumnModel();
           TableColumn col=m.getColumn(3);
           TableColumn col1=m.getColumn(4);
           //List<TableColumn> removed=col;
           //removed.add(col);
           m.removeColumn(col);
           m.removeColumn(col1);
        }
        catch(Exception ex)
        {
            System.out.println(ex.getMessage());
            ex.printStackTrace();
        }
    }

我只想添加JRadioButton,用户可以选择任意一行JRadioButto,

提前感谢您提出任何建议和指导

1 个答案:

答案 0 :(得分:2)

考虑了几种替代方案here,但您可能希望显示{@ 3}}的@Guillaume Polet。它使用PropertyChangeEvent来强制执行每行一次选择。