Java 无法从我的下拉列表中收费

Java 无法从我的下拉列表中收费,java,swing,Java,Swing,我的下拉列表表明我的表单中有几个不正确的元素。。。 我有一个错误消息。 “在presentation.JDAlbuInsert.fillComponents(JDAlbuInsert.java:146)”中 这是一句话: private void fillComponents() { ArrayList <Chanteur> cha = daoCha.selectChanteurs(); for (int i=0;i<cha.size(

我的下拉列表表明我的表单中有几个不正确的元素。。。 我有一个错误消息。 “在presentation.JDAlbuInsert.fillComponents(JDAlbuInsert.java:146)”中 这是一句话:

private void fillComponents()
    {

        ArrayList <Chanteur> cha = daoCha.selectChanteurs();
        for (int i=0;i<cha.size();i++)
            jComboCha.addItem(cha.get(i));

    }
private void fillComponents()
{
ArrayList cha=daoCha.selectChanters();

对于(int i=0;i给定为澄清而提供的图像,我可以看到comboBox正试图为您的对象
Chanteur
提供字符串表示

这是因为你有

for (int i=0;i<cha.size();i++)
        jComboCha.addItem(cha.get(i));
它应该会起作用

注意:如果像这样迭代一个ArrayList,使用for:each循环可能更可取,也可能更简单


你能不能发布发生的完整stacktrace,而不仅仅是消息?@HamishD;我已经编辑了我的消息。我已经根据你的图像添加了一个答案,如果它给出了所需的信息,请告诉我result@julliiie你想发生什么?我需要澄清@HamishD;我没有错误信息,但是我的下拉列表不收费,因为图片公关很明显,@julliie所以这个图像是你想要的,但是现在你在组合框中什么都没有?@HamishD:组合框只显示@julliie,你想让组合框显示什么?
public class JDAlbuInsert extends javax.swing.JDialog {

    /** Creates new form JDApparInsert */
    public JDAlbuInsert(java.awt.Frame parent, String titre) {
        super(parent, titre, true);
        initComponents();
        fillComponents();
        getRootPane().setDefaultButton(jButtonOK);
        setLocation(parent.getX()+parent.getWidth()/3, parent.getY()+parent.getHeight()/3);
        setVisible(true);
    }

    /** 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.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jTextIdent = new javax.swing.JTextField();
        jTextTitre = new javax.swing.JTextField();
        jComboCha = new javax.swing.JComboBox();
        jDateChooserDate = new com.toedter.calendar.JDateChooser();
        jPanel2 = new javax.swing.JPanel();
        jButtonOK = new javax.swing.JButton();
        jButtonAnnul = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        jLabel1.setText("Ident");

        jLabel2.setText("Description");

        jLabel3.setText("Date");

        jLabel4.setText("Nom");

        jDateChooserDate.setDateFormatString("dd-MM-yyyy");

        org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                    .add(jLabel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(jLabel1)
                    .add(jLabel3)
                    .add(jLabel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .add(11, 11, 11)
                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                    .add(jComboCha, 0, 200, Short.MAX_VALUE)
                    .add(jTextIdent, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 60, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jTextTitre, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
                    .add(jDateChooserDate, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(126, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jLabel1)
                    .add(jTextIdent, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jLabel2)
                    .add(jTextTitre, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jLabel3)
                    .add(jDateChooserDate, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jLabel4)
                    .add(jComboCha, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(185, 185, 185))
        );

        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

        jButtonOK.setText("OK");
        jButtonOK.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonOKActionPerformed(evt);
            }
        });
        jPanel2.add(jButtonOK);

        jButtonAnnul.setText("Annuler");
        jButtonAnnul.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonAnnulActionPerformed(evt);
            }
        });
        jPanel2.add(jButtonAnnul);

        getContentPane().add(jPanel2, java.awt.BorderLayout.SOUTH);

        pack();
    }// </editor-fold>                        

    private void jButtonAnnulActionPerformed(java.awt.event.ActionEvent evt) {                                             
// TODO add your handling code here:
        this.dispose();
    }                                            

    private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) {                                          
// TODO add your handling code here:
        Album alb = new Album();
        alb.setCodeA(jTextIdent.getText().toUpperCase()); //setIdentApp
        alb.setTitreA(jTextTitre.getText());
        alb.setSortieA(jDateChooserDate.getDate());
        alb.setCatApp((Chanteur)jComboCha.getSelectedItem());

        boolean ok = daoAlb.insertAlbum(alb);
        if (!ok)
            JOptionPane.showMessageDialog(null,"Insertion impossible !","Avertissement",JOptionPane.ERROR_MESSAGE);
        this.dispose();
    }                                         

    private void fillComponents()
    {
        /* charger toutes les chanteurs */

        ArrayList <Chanteur> cha = daoCha.selectChanteurs();
        for (int i=0;i<cha.size();i++)
            jComboCha.addItem(cha.get(i));



    }


    // Variables declaration - do not modify                     
    private javax.swing.JButton jButtonAnnul;
    private javax.swing.JButton jButtonOK;
    private javax.swing.JComboBox jComboCha;
    private com.toedter.calendar.JDateChooser jDateChooserDate;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JTextField jTextIdent;
    private javax.swing.JTextField jTextTitre;
    // End of variables declaration                   

    private DAOAlbums daoAlb = Factory.getDAOAlbums();
    private DAOChanteurs daoCha = Factory.getDAOChanteurs();


}
for (int i=0;i<cha.size();i++)
        jComboCha.addItem(cha.get(i));
for (int i=0;i<cha.size();i++)
        jComboCha.addItem(cha.get(i).toString());