Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    370

    java awt.event chiudere con la x

    sono alle prime armi con java ma come faccio ad usare le awt.event per poter chiudere la finestra clcicando sulla x?

    così non funziona

    import java.applet.*; // Include le classi per le applet.
    import java.awt.*; // Include le classi per l'awt
    import java.net.*;
    import java.awt.event.*;


    public class IndirizziIP extends Applet implements WindowListener {

    Label MessLabel = new Label("Inserisci dominio", Label.CENTER);
    Label cliccato=new Label("",Label.CENTER);
    TextField hourfld = new TextField(20);




    public static void main(String args[]) {

    Frame ButAppFram = new Frame("Cerca indirizzo ip");

    IndirizziIP MiaBut1AppIst = new IndirizziIP();
    MiaBut1AppIst.init();
    ButAppFram.add("Center", MiaBut1AppIst);

    ButAppFram.resize(500,300);

    ButAppFram.show();
    }
    public void init() {

    Button OkBottone = new Button("Cerca");

    add(MessLabel);
    add(hourfld);
    add(OkBottone);
    add(cliccato);



    }



    public boolean action(Event eventuccio, Object argomento) {

    String dom = hourfld.getText();
    if(eventuccio.target instanceof Button) {
    if(argomento.equals("Cerca")) { // E' si?


    try {
    InetAddress loc=InetAddress.getByName(dom);


    cliccato.setText("IP di "+dom+" : "+loc.getHostAddress());
    doLayout();
    setVisible(true);


    }
    catch (UnknownHostException e)
    {
    cliccato.setText("Non esiste il dominio "+dom);

    };


    }


    return true;
    }

    return false; }




    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }







    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    La prossima volta usa i tagl [*CODE] e [/*CODE] così il testo del programma risulta più leggibile...

    Devi aggiungere il WindowListener... aggiungi al tuo metodo init() questa riga:
    codice:
    addWindowListener(this);
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    370
    in compilazione da questo errore

    Note: C:\IndirizziIP.java uses or overrides a deprecated API.
    Note: Recompile with -deprecation for details.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Non mi ero accorto che stai facendo un'applet ed il frame era separato... Togli la riga che ti ho detto di aggiungere e aggiungi questa nel main:
    codice:
    ButAppFram.addWindowListener(this);

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    370
    adesso mi da questo errore

    ButAppFram.addWindowListener(this);
    ^
    Note: C:\Documents and Settings\stefano.STEFANO\Desktop\projava\03\Indiri zziIP.java uses or overrides a deprecated API.
    Note: Recompile with -deprecation for details.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    370
    o meglio mi da questo

    ButAppFram.addWindowListener(this);
    ^
    Note: C:\Documents and Settings\stefano.STEFANO\Desktop\projava\03\Indiri zziIP.java uses or overrides a deprecated API.
    Note: Recompile with -deprecation for details.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    370
    il segno sta sotto a this e non sotto la b

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    A me dà due (diversi) e più ovvi errori:

    1) Hai implementato WindowListener ma non hai implementato tutti i suoi metodi, quindi dovrebbe essere abstract.

    2) Non si può far uso della parola this (non statica) in un contesto statico come il main (il mio suggerimento era sbagliato e non me ne sono accorto).

    A me non dice nulla riguardo le deprecated api (anche perchè addWindowListener() non è mai stato deprecato, nemmeno nella versione 1.5.0 di JDK).

    Io controllerei meglio, comunque per aggiungere un WindowListener si usa il metodo addWindowListener() applicato ad un oggetto Frame (o JFrame). Per poterlo fare devi richiamare un metodo dal main() e dentro a quel metodo applicare addWindowListener al frame, magari passando quest'ultimo come parametro al metodo:
    codice:
    public static void main(String [] args) {
       ...
       nuovoMetodo(ButAppFram);
    }
    
    private void nuovoMetodo(Frame frm) {
       frm.addWindowListener(this);
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    370
    mi da errore qui dentro è possibile



    nuovoMetodo(ButAppFram);

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Può essere benissimo... oggi non ci sono con la testa, rimane sempre il problema che da un contesto statico non si può fare riferimento a metodi e/o variabili non statiche.

    Fossi in te cambierei strategia: crea una classe che estende Frame e implementa WindowListener (oppure aggiungi un WindowListener come WindowAdapter) e gestisci da lì...

    Oppure prova ad usare qualcosa di più maneggevole: perchè far fare ad un'applet ciò che può essere svolto benissimo da un pannello?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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 © 2024 vBulletin Solutions, Inc. All rights reserved.