Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Έχω ένα ComboBox (javaFX 8.0) με 2500 items. Θέλω  να δείχνει όχι τα πρώτα 10 items, αλλά το 501ο  μέχρι το 510ο item. Πώς γίνεται αυτό;

Επεξ/σία από giso
Δημοσ. (επεξεργασμένο)
10 ώρες πριν, Lanike71 είπε

Μάλλον δεν το έθεσα σωστά το ερώτημα. Θέλω να υπάρχουν και τα 2500 στοιχεία της ObservableList<T> του CombBox.  Τα 2500 στοιχεία είναι έτη.

Έκανα editable το ComboBox ενσωματώνοντας φίλτρο πρόβλεψης της εισαγόμενης τιμής και έτσι περιορίζονται οι διαθέσιμες τιμές του ComboBox. Μεσοβέζικη λύση, αλλά καλύτερα από το να επιλέξεις την τιμή από 2500 τιμές που έχω στο ComboBox.

Επεξ/σία από giso
Δημοσ.
1 ώρα πριν, Lanike71 είπε

Δε μπορούσες κάθε φορά απλά να κλωνοποιείς τη λίστα του combobox και να τη βάζεις εσύ με τη σειρά που θες;

Η σειρά της λίστας θέλω να είναι πάντοτε ίδια (τα έτη κατά αύξουσα σειρά).

Θέλω απλά στο κέντρο του αρχικού "παράθυρου" εμφάνισης των στοιχείων της λίστας να βρίσκεται το τρέχον έτος.

Δημοσ.

Με λίγο ψάξιμο δε βρήκα κάτι.

Πάντως θεωρώ λάθος το σκεπτικό σου το να επιλέγεις από μία λίστα 2500 αντικειμένων. Αν θέλω να επιλέξω κάτι στο τέλος της λίστας, το να σκρολλάρω θα μου πάρει περισσότερο χρόνο από το να πληκρολογήσω 4 ψηφία.

Καλύτερο αυτό που γράφεις στο προηγούμενο ποστ σου με φίλτρο.

Δημοσ.
3 ώρες πριν, Lanike71 είπε

Με λίγο ψάξιμο δε βρήκα κάτι.

Πάντως θεωρώ λάθος το σκεπτικό σου το να επιλέγεις από μία λίστα 2500 αντικειμένων. Αν θέλω να επιλέξω κάτι στο τέλος της λίστας, το να σκρολλάρω θα μου πάρει περισσότερο χρόνο από το να πληκρολογήσω 4 ψηφία.

Καλύτερο αυτό που γράφεις στο προηγούμενο ποστ σου με φίλτρο.

Συμφωνώ. Επειδή οι περισσότερεις επιλογές είναι κοντά στο τρέχον έτος η καλύτερη επιλογή είναι " το κέντρο του αρχικού "παράθυρου" εμφάνισης των στοιχείων της λίστας να βρίσκεται το τρέχον έτος", αλλά δε βρίσκω τρόπο να το υλοποιήσω.

Δημοσ.

Θα σου δώσω ένα παράδειγμα για να σε βοηθήσω.

Έστω ότι κάνω ένα site και θέλω να πάρω την ηλικία του αναγνώστη σε κάποιο πεδίο. Αν υποθέσω ότι το διαβάζουν ηλικίες από 20-50, θα έβαζα αυτές τις 30 τιμές στο combobox. Επίσης θα το άφηνα ελεύθερο να συμπληρώσει κάποιος μόνος του την ηλικία. Πάντως να έβαζα από 8-108, αποκλείεται.

Γιατί δε μπορείς να το κάνεις; Κλωνοποίησε τη λίστα σου και κάνε τη μικρότερη και δούλεψε τη, τι σε περιορίζει;

Δημοσ.

Αν καταλαβα καλα θες να κανεις programmatically expand και scroll σε συγκεκριμένη θέση to ComboBox.

Νομίζω γίνεται με τις μεθόδους showPopup() και scrollTo()

Δημοσ.
22 ώρες πριν, Lanike71 είπε

Θα σου δώσω ένα παράδειγμα για να σε βοηθήσω.

Έστω ότι κάνω ένα site και θέλω να πάρω την ηλικία του αναγνώστη σε κάποιο πεδίο. Αν υποθέσω ότι το διαβάζουν ηλικίες από 20-50, θα έβαζα αυτές τις 30 τιμές στο combobox. Επίσης θα το άφηνα ελεύθερο να συμπληρώσει κάποιος μόνος του την ηλικία. Πάντως να έβαζα από 8-108, αποκλείεται.

Γιατί δε μπορείς να το κάνεις; Κλωνοποίησε τη λίστα σου και κάνε τη μικρότερη και δούλεψε τη, τι σε περιορίζει;

Η λογική να χρησιμοποιήσω ComboBox ήταν να αποκλείει λανθασμένη τιμή έτους. Φυσικά κάνοντάς editable αναγκάσθηκα να κάνω validation την εισαγώμενη τιμή. Δηλαδή κανένα πλεονέκτημα από τη χρήση ComboBox. Η καλύτερη επιλογή είναι η χρήση TextField για την εισαγωγή του έτους και validation της τιμής του.

5 ώρες πριν, albNik είπε

Αν καταλαβα καλα θες να κανεις programmatically expand και scroll σε συγκεκριμένη θέση to ComboBox.

Νομίζω γίνεται με τις μεθόδους showPopup() και scrollTo()

Σωστά κατάλαβες albNik.

Η μέθοδος showPopup() υπάρχει στη swing και εγώ χρησιμοποιώ JavaFX.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...