JAVA组合框空白区

时间:2015-08-08 19:59:58

标签: java combobox javafx

我有一个装满物品的组合框。

每当我删除其中一个项目时,该值将被删除但不会删除 组合框内的空白区域?

我该如何解决这个问题?

这是javafx:)

如果我的组合框内有10个项目并删除它们,我将有10个空格..

 @FXML
public void toevoegenPloeg(ActionEvent event) throws ApplicationException, DBException {

    //verbinding met transactielaag
    PloegTrans pt = new PloegTrans();

    lblCorrect.setText("");
    lblError.setText("");

    //kijken of er een niveau geselecteerd is (must)
    if(cboNiveau.getSelectionModel().getSelectedItem() != null){
        taPloegen.setVisible(true);
        //niveau ophalen uit combobox
        String niveau = cboNiveau.getSelectionModel().getSelectedItem().name();

        //verbinding met db klasses
        PloegDB pdb = new PloegDB();
        PersoonDB pb = new PersoonDB();

        //ploegnaam berekenen
        Integer aantal = pdb.zoekAantalPloegenPerNiveau(niveau);

        //als aantal groter is dan " Z " dan error geven
        if (aantal+1 < 27) {
            String ploegnaam = niveau + getLetter(aantal+1);;
            try{

                //indien geen trainer geselectteerd dan ploeg maken zonder trainer
                if(cboTrainer.getSelectionModel().getSelectedItem() == null) {

                    //gegevens setten
                    PloegBag pr = new PloegBag();
                    pr.setNaam(ploegnaam);
                    pr.setNiveau(niveau);
                    int ploegID = pt.toevoegenPloegZonderTrainer(pr);

                    pr.setId(ploegID);

                    lblCorrect.setText("ploeg werd aangemaakt");

                    //toevoegen gegevens en combobox op leeg zetten
                    taPloegen.getItems().add(pr);
                    cboNiveau.getSelectionModel().select(null);
                    iniTabel();
                }

                // anders gaan we een ploeg maken met een trainer
                else {
                    //trainerid berkenenen
                    Integer trainerId =  cboTrainer.getSelectionModel().getSelectedItem().getId();

                    PloegBag pr = new PloegBag();
                    PersoonBag pa = cboTrainer.getSelectionModel().getSelectedItem();

                    //setters voor het persoonbag
                    pr.setNaam(ploegnaam);
                    pr.setNiveau(niveau);
                    pr.setTrainer_id(trainerId);

                    int ploegID = pt.toevoegenPloeg(pr);
                    pr.setId(ploegID);

                    lblCorrect.setText("Ploeg werd aangemaakt");

                    //toevoegen aan tableview en comboboxes leegmaken
                    taPloegen.getItems().add(pr);
                    cboNiveau.getSelectionModel().select(null);
                    cboTrainer.getSelectionModel().select(null);

                    //trainer heeft nu een ploeg dus erwijderen wehem uit de combobox
                    cboTrainer.getItems().remove(pa);
                    iniTabel();
                }
            } catch (DBException ae){
                lblError.setText("Onherstelbare fout: " + ae.getMessage());
            }
             catch (ApplicationException ae){
                lblError.setText(ae.getMessage());
            }
        } else { 
            lblError.setText("Ploegenniveau zit vol");
        }
    } else {
        lblError.setText("Geen niveau geselecteerd");
    }
}


 private void iniComboTrainer(){
    PersoonDB pdb = new PersoonDB();

    try{
        ArrayList<PersoonBag> persoonlijst = pdb.zoekAlleOpenTrainers();
        for(PersoonBag pb : persoonlijst){
            cboTrainer.getItems().add(pb);
        }
    } catch (ApplicationException ae) {
        lblError.setText(ae.getMessage());
    } catch (DBException ae) {
        lblError.setText("onherstelbare fout: " + ae.getMessage());
    }
}

编辑:我仍然发现了这个问题..我尝试了所有选项..这就是我删除项目时的意思,空白区域仍然存在。combobox blank space

编辑:每当我换到另一个页面然后返回时,空格就消失了......但是当我在同一页面上时

1 个答案:

答案 0 :(得分:1)

您可以在删除项目后立即尝试这样做。

comboBox.setVisibleRowCount(comboBox.getVisibleRowCount()-1);`