Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: problema con combobox

  1. #1

    problema con combobox

    il mio problema è il seguente:

    una volta selezionato un elemento con il mio JcomboBox, vorrei copiarlo in una stringa...con JTextField non ho problemi in quanto utilizzo getText()...ma con un JComboBox come diavolo faccio?

  2. #2

    Re: problema con combobox

    Originariamente inviato da Uri_geller
    il mio problema è il seguente:

    una volta selezionato un elemento con il mio JcomboBox, vorrei copiarlo in una stringa...con JTextField non ho problemi in quanto utilizzo getText()...ma con un JComboBox come diavolo faccio?
    Hai provato con getSelectedItem()?
    Restituisce un object, quindi se vuoi salvarlo sotto forma di stringa devi fare un cast.

  3. #3
    si..ci avevo pensato pero' ho un dubbio: non è che devo pure gestire l'azione del mouse sulla combobox?

  4. #4
    Originariamente inviato da Uri_geller
    si..ci avevo pensato pero' ho un dubbio: non è che devo pure gestire l'azione del mouse sulla combobox?
    Non dovrebbe esserci il bisogno. Poi dipende da quello che devi fare.

  5. #5
    Risolto!
    bisognava implementare un'azione selectionListener...certo che queste ComboBox sembrano apparentemente facili da usare..ed invece sono una bella rogna!

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    guarda le API e vedi bene cosa dicono.
    Per quanto riguarda il "prelevare" il valore della combo banalmente getSelectedItem risponde alle tue esigenze: restituisce un object, che è appunto l'item in questione.
    Ovviamente devi vedere se abiliti la selezione multipla o meno, in quel caso guardi getSelecteditems e hai una lista (array se non ricordo male) di items.

    Usando invece il selectionlistener fai un'altra cosa: associ un'azione al cambiamento della selezione. Ogni volta che cambi, in qualche modo la selezione corrente, viene generato questo evento.
    Sono due cose differenti ed è meglio che tu veda bene le differenze.
    Un occhio alle API e al tutorial oracle (ben fatto) non fa male

  7. #7

    Nuovo problema

    Adesso ho un altro problema:
    Ho un ArrayList che contiene informazioni riguardanti gli Hotel(nome ,stelle,indirizzo,n°stanze..).
    Mi creo un ComboBox che contiene solamente i nomi degli hotel.
    Adesso, una volta selezionato un hotel da combobox, vorrei che nella mia finestra comparissero le info riguardanti quell'hotel(le info sono su ArrayList)..come faccio?
    Questo è il codice che ho implementato:

    [CODE][CODE]import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;

    class infoHotel extends JFrame{

    private JComboBox uneditableComboBox;
    private JLabel label;
    private JLabel label_i;
    private String[] items;
    private String scelta ;

    public infoHotel(ArrayList<String> l){

    super("infoHotel");
    setBounds(0,35,500,600);
    getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));
    //*******Conto gli elementi che dovrò caricare nella mia ComboBox********
    int numItem= 0;
    for(int i=0;i<l.size();i++){
    String buf = new String();
    buf = l.get(i).toString();

    if(buf.startsWith("H") )
    numItem++;
    }
    //INSERISCO GLI ELEMENTI OPPORTUNI DELL'ARRAYLIST NELLA MIA COMBOBOX
    items = new String[numItem];
    int k = 0;
    for(int i=0;i<l.size();i++){
    String buf = new String();
    buf = l.get(i).toString();
    if(buf.startsWith("H")){
    items[k] =(String.valueOf(buf) );
    k++;
    }
    }

    //******************************
    uneditableComboBox =new JComboBox(items);
    ActionListener selectionListener = new SelectionListener();
    uneditableComboBox.addActionListener(selectionList ener);

    label = new JLabel();








    getContentPane().add(uneditableComboBox);
    getContentPane().add(label);
    setVisible(true);
    }

    class SelectionListener implements ActionListener{

    public void actionPerformed(ActionEvent e){
    JComboBox cb = (JComboBox)e.getSource();
    String selectedItem =(String)cb.getSelectedItem();

    //MI STAMPA SU UNA LABEL IL NOME DELL'HOTEL CHE SELEZIONO(non riesco a stampare le altre info)
    label.setText( selectedItem );

    }
    }





    }

  8. #8

    Re: Nuovo problema

    Originariamente inviato da Uri_geller
    Adesso ho un altro problema:
    Ho un ArrayList che contiene informazioni riguardanti gli Hotel(nome ,stelle,indirizzo,n°stanze..).
    Mi creo un ComboBox che contiene solamente i nomi degli hotel.
    Adesso, una volta selezionato un hotel da combobox, vorrei che nella mia finestra comparissero le info riguardanti quell'hotel(le info sono su ArrayList)..come faccio?
    Il modo migliore per poterlo fare è quello di passare al ComboBox direttamente una sequenza di istanze della classe Hotel, piuttosto che della classe String.

  9. #9
    non lo posso fare, perchè praticamente, una volta inserito il numero delle stanze vengono create delle stringhe "S+NumeroStanza" che andranno inserite in un'altra comboBox..esempio:

    NomeHotel: Deluxe
    Stelle: 3
    Stanze 3
    S1
    S2
    S3

    Quando seleziono Hotel Deluxe dalla mia ComboBox, dovrei visualizzare nel frame le info relative all'hotel, mentre in un altra comboBox saranno inserite le stanze S1 S2 S3..cio' serve per la prenotazione di una stanza..

  10. #10
    Originariamente inviato da Uri_geller
    non lo posso fare
    Allora definisci un map tra i nomi degli hotel e le relative informazioni.
    Potresti usare una istanza della classe java.util.HashMap, ed in particolare definirla così:
    HashMap<String, String[]>, dove String rappresenta il nome di un hotel e l'array rappresenta la sequenza di informazioni associate a quel nome.

    Resta il fatto che la prima soluzione è sempre quella consigliata, semplicemente perchè sei in Java.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.