Programma gui

di il
10 risposte

Programma gui

Sto creando un programma dove ti viene richiesto di inserire una parola e a seconda di quante lettere ha questa parola si creano tanti jradiobutton.
Tipo la parola è "ciao" che è formata da 4 lettere, i jradiobutton saranno 4.
(e questo sono riuscita a farlo) Il problema è che devo fare in modo che cliccando su un jradiobutton succeda qualcosa eppure non succede niente.

ho creato un jlabel dove vengono inseriti i jradiobutton e cliccando sul destro su questo jlabel e facendo costumize code questo è quello che ho (in parte perchè alcune cose si sono compilate da sole) inserito

jLabelRadio = new javax.swing.JLabel();
if(aa<1){
radioo();
}   
for(int i=0;i<radio.length;i++){
if (radio[i].isSelected()) {
                JOptionPane.showMessageDialog(null, "nonoon");
                initComponents();
            }
}
jLabelRadio.setBorder(javax.swing.BorderFactory.createEtchedBorder());
radio() sarebbe una funzione dove inizializzo di jradiobutton, perché non credo vada bene ricrearli tutte le volte... una volta che entra in radio, aa diventa uguale a uno così non entra più in radio().

per esempio vorrei fare in modo che cliccando su un jradiobutton mi appaia la finestrella (joptionpane) come vedete nel codice, ma non succede.
Help?

10 Risposte

  • Re: Programma gui

    fifififi ha scritto:


    devo fare in modo che cliccando su un jradiobutton succeda qualcosa eppure non succede niente.
    Se vuoi che succeda "qualcosa" quando si aziona un radiobutton (e non a seguito di altro evento per cui vai poi tu a vedere quale degli N è selezionato), dovresti registrare un ActionListener sul JRadioButton ... l'hai fatto?
  • Re: Programma gui

    No, come si fa?
  • Re: Programma gui

    fifififi ha scritto:


    No, come si fa?
    Es.
    ButtonGroup buttonGroup = new ButtonGroup();
    
    for (int i = 0; i < 4; i++) {
        JRadioButton radioButton = new JRadioButton("R"+i);
        contenitore.add(radioButton);
        buttonGroup.add(radioButton);
    
        radioButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JRadioButton rb = (JRadioButton) e.getSource();
                JOptionPane.showMessageDialog(null, "Hai cliccato su " + rb.getText());
            }
        });
    }
    contenitore è dove inserisci i radiobutton, potrebbe essere il content pane, un JPanel o altro (non ha importanza ora).
  • Re: Programma gui

    Ciao, scusa alla fine avevo risolto quel problema. Adesso però ne ho degli altri XD se dovessi non riuscire a risolverli ti riscrivo. Sempre molto gentile come al solito.
    Grazie!
  • Re: Programma gui

    Ho un problema
    Devo inserire delle parole e cliccare su un bottone. Una volta cliccato sul bottone mi si dovrebbero aggiornare delle variabili e l'interfaccia grafica con queste variabili ma quest'ultima cosa non succede (le variabili si aggiornano ma l'interfaccia grafica no. Che cosa devo fare?
  • Re: Programma gui

    fifififi ha scritto:


    cliccato sul bottone mi si dovrebbero aggiornare delle variabili e l'interfaccia grafica con queste variabili ma quest'ultima cosa non succede (le variabili si aggiornano ma l'interfaccia grafica no. Che cosa devo fare?
    È un po' vago ... senza vedere cosa hai scritto. Cambiare solo il valore di una variabile, di per sé NON fa aggiornare un bel nulla a livello di interfaccia grafica. Questo vale in generale. Serve "altro" ma è appunto da valutare in base a dove è la variabile, quale componente è da aggiornare ....
  • Re: Programma gui

    Ho risolto quel problema, ora ne ho un altro.
    Ho creato questo jlabel nella grafica e voglio che inserisca dentro delle lettere nel jtextfield da inserire nel jlabel e credo li inserisca anche ma li sovrappone. E poi vorrei anche fare in modo che i jtextfield abbiano la stessa dimensione tutti.
    Housato il SpringLayout.
  • Re: Programma gui

    fifififi ha scritto:


    Ho creato questo jlabel nella grafica e voglio che inserisca dentro delle lettere nel jtextfield da inserire nel jlabel e credo li inserisca anche ma li sovrappone.
    Che vuol dire??

    fifififi ha scritto:


    E poi vorrei anche fare in modo che i jtextfield abbiano la stessa dimensione tutti.
    Housato il SpringLayout.
    Lascia perdere SpringLayout (e GroupLayout). Sono i due layout manager più complessi, contorti che ci siano. Il 99,9% delle GUI si può fare tranquillamente con gli altri layout manager.
  • Re: Programma gui

    Voglio inserire dei jtextfield in un jlabel e lo fa ma li sovrappone. Spiegato meglio di così davvero non so. CMnq non fa niente mi arrangio con gridlayout.
    Adesso però ho un problema, ho creato dei jradiobutton e devo fare in modo che quando li premo succedano delle cose, ma mi da questo errore in quello che scrivo dentro ad actionperformed
    "local variables referenced from an inner class must be final or effectivly final "

    Ho provato a mettere le variabili final ma non funziona. (che poi non ho ancora capito a che serve final
  • Re: Programma gui

    fifififi ha scritto:


    voglio inserire dei jtextfield in un jlabel e lo fa ma li sovrappone.
    Tecnicamente TUTTI i componenti Swing sono dei "contenitori", poiché derivano da JComponent, che deriva dal Container di AWT. E quindi tecnicamente sarebbe possibile fare cose "strane" tipo: inserire un JButton in un JTextField, inserire un JCheckBox in un JLabel, inserire un JLabel in un JTable e altre cose del genere. Che però generalmente NON hanno senso. Questi componenti specifici non sono intesi per fare da contenitore e tra l'altro (salvo casi particolari) non hanno nemmeno un layout manager predefinito.
    Quindi evita questi accrocchi ... usa un contenitore generico es. JPanel e con un layout manager appropriato.

    fifififi ha scritto:


    Adesso però ho un problema, ho creato dei jradiobutton e devo fare in modo che quando li premo succedano delle cose, ma mi da questo errore in quello che scrivo dentro ad actionperformed
    "local variables referenced from an inner class must be final or effectivly final "

    Ho provato a mettere le variabili final ma non funziona. (che poi non ho ancora capito a che serve final
    Allora hai bisogno di più "basi" sulle inner-class e sul concetto di final.
Devi accedere o registrarti per scrivere nel forum
10 risposte