Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中从JComboBox获取整数值_Java_Swing_Integer_Jcombobox_Classcastexception - Fatal编程技术网

在java中从JComboBox获取整数值

在java中从JComboBox获取整数值,java,swing,integer,jcombobox,classcastexception,Java,Swing,Integer,Jcombobox,Classcastexception,我正在使用JComboBox将整数值作为输入。请告诉我可以使用哪个函数从combobox获取值 我的combox将具有这些值 cb1=new JComboBox(); for(int i=1;i<=31;i++) { if(i<10) { cb1.addItem("0"+i); } else { cb1.addItem(i); }

我正在使用JComboBox将整数值作为输入。请告诉我可以使用哪个函数从combobox获取值

我的combox将具有这些值

cb1=new JComboBox();
        for(int i=1;i<=31;i++)
    {
        if(i<10)
        {
        cb1.addItem("0"+i);
        }
        else
        {
        cb1.addItem(i);
        }
    }
但它在我的代码中显示了这个错误

我的代码如下

Discharge_screen()
{
    l = new JLabel("Discharge screen");
    l.setHorizontalAlignment(SwingConstants.CENTER);
    l.setVerticalAlignment(SwingConstants.CENTER);
    l.setBackground(Color.GRAY);
    l.setOpaque(true);
    l1 = new JLabel("Discharge Destination");
    l1.setBackground(Color.LIGHT_GRAY);
    l1.setOpaque(true);
    l2 = new JLabel("Discharge outcome");
    l2.setBackground(Color.LIGHT_GRAY);
    l2.setOpaque(true);
    l3 = new JLabel("Discharge date");
    l3.setBackground(Color.LIGHT_GRAY);
    l3.setOpaque(true);
    cb1=new JComboBox();
    for(i=1;i<=31;i++)
    {
        if(i<10)
        {
        cb1.addItem("0"+i);
        }
        else
        {
        cb1.addItem(i);
        }
    }
    cb2=new JComboBox();
    for(i=1;i<=12;i++)
    {
        if(i<10)
        {
        cb2.addItem("0"+i);
        }
        else
        {
        cb2.addItem(i);
        }
    }
    cb3=new JComboBox();
    for(i=1950;i<=2015;i++)
    {
        cb3.addItem(i);
    }


    b1=new  JButton("Submit");
    b2=new JButton("Back to home");

    t1=new JTextField();
    t2=new JTextField();


    panel = new JPanel();
    panel.setLayout(null);

    l.setBounds(100,40,225,35);

    l1.setBounds(100,100,100,25);
    t1.setBounds(205,100,125,25);

    l2.setBounds(100,130,100,25);
    t2.setBounds(205,130,125,25);

    l3.setBounds(100,160,100,25);
    cb1.setBounds(205,160,50,25);
    cb2.setBounds(260,160,50,25);
    cb3.setBounds(315,160,75,25);


    b1.setBounds(100,190,100,25);
    b2.setBounds(205,190,125,25);

    panel.add(l);
    panel.add(l1);
    panel.add(t1);
    panel.add(l2);
    panel.add(t2);
    panel.add(l3);
    panel.add(cb1);
    panel.add(cb2);
    panel.add(cb3);     
    panel.add(b1);
    panel.add(b2);

    add(panel,BorderLayout.CENTER);
    b1.addActionListener(this);
    b2.addActionListener(this);
    setTitle("Discharge screen");
    setSize(450,400);
}

@Override
public void actionPerformed(ActionEvent event) 
{
    // TODO Auto-generated method stub


    if(event.getSource()==b1)
    {
        Connection con = null; 
        Statement stmt=null;
        ResultSet rs=null;
        String a,b;
        int c,d,e;  


        try 
        {

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String accessFileName = "C:\\Users\\dinesh\\Documents\\employee";
            String connURL="jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+accessFileName+".accdb";
            con = DriverManager.getConnection(connURL, "","");
            stmt = con.createStatement();

         a=t1.getText();
        b=t2.getText();
        c=(Integer) cb1.getSelectedItem();
        System.out.println(c);
        d=(Integer) cb2.getSelectedItem();  
        e=(Integer) cb3.getSelectedItem();

            stmt.executeUpdate("insert into discharge_details (dis_dest,dis_outcome,dis_date) values ('"+a+"','"+b+"','"+c+":"+d+":"+e+"')");// execute query in table student
            System.out.println("1");
            rs = stmt.getResultSet();

            stmt.close();
            con.close();
            }
            catch (Exception err) {
                System.out.println("ERROR: " + err);
            }
    }
    }
}
基于此

cb1=new JComboBox();
for(int i=1;i<=31;i++)
{
    if(i<10)
    {
        cb1.addItem("0"+i);
    }
    else
    {
        cb1.addItem(i);
    }
}
然后当你需要这个值时,你需要做一些事情,比如

String text = (String)cb1.getSelectedItem();
int value = Integer.parseInt(text);
public class NumberListCellEditor extends DefaultListCellRenderer {

    @Override
    public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
        if (value instanceof Integer) {

            int number = (Integer) value;
            if (number < 10) {
                value = "0" + number;
            }

        }
        super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
        return this;
    }

}
JComboBox cb = new JComboBox<Integer>();
cb.setRenderer(new NumberListCellEditor());
for (int i = 1; i <= 31; i++) {
    cb.addItem(i);
}
或者(可以更正确地说),您可以使用
ListCellRenderer
,这将允许您更改在
JComboBox
中呈现值时的外观,类似于

String text = (String)cb1.getSelectedItem();
int value = Integer.parseInt(text);
public class NumberListCellEditor extends DefaultListCellRenderer {

    @Override
    public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
        if (value instanceof Integer) {

            int number = (Integer) value;
            if (number < 10) {
                value = "0" + number;
            }

        }
        super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
        return this;
    }

}
JComboBox cb = new JComboBox<Integer>();
cb.setRenderer(new NumberListCellEditor());
for (int i = 1; i <= 31; i++) {
    cb.addItem(i);
}
看看

欲知详情

int value = (Integer)cb1.getSelectedItem();