Visualizzazione dei risultati da 1 a 8 su 8

Discussione: eventi_menù

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    191

    eventi_menù

    Ho appena finito un giochetto in java, vorrei inserirci un menù
    che permetta di iniziare una nuova partita o chiudere la finestra.
    Ho inserito:

    Frame finestra=new Frame("titolo");
    finestra.show();
    MenuBar barramenu=new MenuBar();
    Menu m1=new Menu("file");
    m1.add(new MenuItem("nuova partita"));
    m1.add(new MenuItem("chiudi"));

    Il problema è che non so come si gestisce l'evento associato al menù, mi spiego meglio, nel programma ho usato:
    ....
    Monetina.addActionListener(this);
    .....
    public void actionPerformed(ActionEvent e){
    ....}
    usavo action listner per il pulsante, ma se clicco sulla voce del menù
    chiudi che evento subentra e come chiudo la finestra???

    Se clicco su nuova partita, azzererò tutte le variabile usate, ma come gestisco anche questo evento???
    Ciao
    :quipy:

  2. #2
    Puoi usare un ActionListener

    JMenuITem m=new MenuItem("nuova partita");
    m.addActionListener(new Partita());
    m1.add(m);

    ...
    ...

    class Partita implements ActionListener{
    public static void actionPerformed(ActionEvent r){
    //Esegui il codice che ti interessa
    }

    }
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    191
    ma se per il bottone uso:
    public void actionPerformed(ActionEvent e) {
    String bottone = e.getActionCommand();
    if (bottone.equals("Lancia Monetina")) {
    if(pippo==0){
    ..........
    casuale=(int)(Math.random()*10);
    if(casuale<=5){
    .........

    qui sotto al posto di String bottone = e.getActionCommand() che ci va?

    class Partita implements ActionListener{
    public static void actionPerformed(ActionEvent r){
    //PER SAPERE SE HO CLICCATO SU UNA VOCE DEL MENù?
    }
    Grazie per l'interessamento!

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    191
    credo che il ragionamento è lo stesso:

    String nuovo_bottone = e.getActionCommand();
    if (nuovo_bottone.equals("nuova partita")) {

    giusto?

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    191
    credo che il ragionamento è lo stesso:

    String nuovo_bottone = r.getActionCommand();
    if (nuovo_bottone.equals("nuova partita")) {

    giusto?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    191
    Scusa Zero-2 se continuo la discussione, ma ho comprato un libro di java:
    java2 MC Graw Hill, ma la parte grafica non la spiega!

    Ho fatto così:
    public class Tabellone extends JFrame implements ActionListener {
    ............
    .......
    public void actionPerformed(ActionEvent e) {
    String bottone = e.getActionCommand();
    if (bottone.equals("Lancia Monetina")) {
    .....
    // funziona


    ............
    public void actionPerformed(ActionEvent r) {
    String bottonea = r.getActionCommand();
    if (bottonea.equals("nuova partita")) {
    casuale1.setText("verde");
    // mi da errore
    }}


    l'evento l'ho associato al bottone lancia monetina così:
    p3.add(Monetina);
    Monetina.addActionListener(this);

    mentre l'altro evento, quello che mi fa iniziare una nuova partita:
    m1.add(nuova_partita);
    nuova_partita.addActionListener(this);
    ma mi da errore.


    Come mai?


  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    191
    Risolto, ho messo anche gli eventi del menù dentro:

    public void actionPerformed(ActionEvent e) {
    ...
    ..
    }
    ActionEvent r esiste????
    Mi manca solo una cosa:

    Come si chiude la finestra???
    se clicco sulla voce chiudi, che ci inserisco???

  8. #8
    Scusami ,ma non ho avuto tempo di leggere

    Ci deve essere un solo metodo actionPerformed in una classe , altrimenti non sa quale attivare.

    public class Tabellone extends JFrame implements ActionListener {
    ............
    .......
    public void actionPerformed(ActionEvent e) {

    String bottone = e.getActionCommand();
    if (bottone.equals("Lancia Monetina")) {
    .....
    // funziona

    dovresti inserire
    elseif(bottone.equals("Nuova partita")){
    ...
    }

    Oppure

    if ( e.getSource() instanceof JButton ){
    //Chiami un metodo per gestire il JButton
    }else {
    //chiami il metodo per gestire il menu
    }
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

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.