Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232

    [java] Interfaccia Grafica

    Salve a tutti...sono un novello di java e sto "giocando" con le interfaccie....
    ...non riesco però a concludere niente....qualcuno può aiutarmi?
    io vorrei semplicemente, disegnare una piccola finestra con due bottoni....vorrei che cliccando il primo compaiano due campi di testo (senza ovviamente i due bottoni di prima...come se si ridisegnasse una nuova finestra che contiene solo i due campi di testo) e cliccando il secondo venga chiusa la finestra...

    come fare? qualcuno può farmi un esempio o mi possa mostrare una guida su come fare?

    P.s. la finestra riesco a disegnarla ma non riesco ad implementare la funzionalità successiva!

    Ringrazio tutti anticipatamente!

  2. #2
    ogni widget dell'interfaccia e quindi bottoni, barre di scorrimento ect.....utilizzano una gamma di classi comunemente chiamata ascoltatori di eventi e ne esistono di vario tipo...ad esempio ai bittoni deve essere sempre associato un actionListener.
    Come si fa:

    1.la classe che definisce la GUI deve implementare l'interfaccia java.awt.event.ActionPerformed

    2. Cre il bottone e associagli un ascoltatore di eventi così:
    JButton bottone=new JButton("Bottone");
    bottone.addActionListener(this);
    poi associ il bottone al pannello della GUI

    3. Viene ereditato un metodo chiamato actionPerformed ed questo ultimo che tu devi manipolare per capire quale bottone ha scatenato l'evento del click...ad esempio, ed effettuare le operazioni necessarie come la stampa di testo o quello che ti pare.....

    il codice per riconoscere la sorgente che scatena l'evento è questo:
    java.awt.Event event è un oggetto passato come argomento ad actionPerformed.

    if(event.getSource==bottone){
    //tue isctruzioni
    }



    spero di essere stato chiaro....forse non funziona tutto ma in linea di massima questi sono i passi da seguire


  3. #3
    Ti consiglio di scaricarti e leggerti il tutorial in HTML della sun,è veramente ben fatto.Ovviamente in English.Purtroppo non ti so indicare un link preciso,cmq il sito ha un motore di ricerca che ti aiuterà a trovarlo
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    Grazie raga per i suggerimenti...ma non sono così terra terra....vi posto il mio codice....
    compilando ed eseguendo visualizzerete una finestra con due bottoni...cliccando sul bottone "Esci", viene chiusa la finestra...cliccando sul bottone "Campo di testo", verrà stampata su console una stringa....adesso...cosa voglio fare? Io vorrei che cliccando su "campo di testo" mi venga creato un campo di testo all'interno della finestra....naturalmente senza i due bottoni precedentemente creati...adesso dato che non ho tanta dimestichezza con le interfacce, vorrei sapere come procedere....è necessario ridisegnare la finestra? quindi una volta cliccato su "campo di testo" bisogna chiudere la finestra e ricrearne un'altra? o bisogna procedere in un altro modo?
    qualcuno potrebbe postarmi il codice per fare quello che ho indicato sopra?

    Grazie ancora a tutti!


    CODICE

    import java.awt.*;
    import java.awt.event.*;

    public class Finestra extends Frame implements ActionListener {

    Button bCrea, bEsci;
    public static void main (String argv[]) {
    Finestra ist;
    ist = new Finestra();
    }

    public Finestra(){
    setLayout(null);
    setBounds (30, 10, 300, 200);
    setBackground (Color.lightGray);
    setTitle("Finestra Creata");

    bCrea = new Button ("Campo di Testo");
    bCrea.setBounds(40, 80, 100, 30);
    bCrea.addActionListener(this);

    bEsci = new Button ("Esci");
    bEsci.setBounds(150, 80, 100, 30);
    bEsci.addActionListener(this);

    add (bCrea);
    add (bEsci);
    setVisible(true);
    }

    public void actionPerformed(ActionEvent e){
    if (e.getActionCommand().equals(bCrea.getActionComman d())){
    System.out.println("Apro la seconda pagina");

    }
    if (e.getActionCommand().equals(bEsci.getActionComman d()))
    System.exit(0);
    }
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    codice:
    import java.awt.*; 
    import java.awt.event.*; 
    
    public class Finestra extends Frame implements ActionListener {
      
      Button bCrea, bEsci, bEsci2;
      Panel mainP, textP;
      TextField textf;
      
      public static void main (String argv[]) { 
        Finestra ist = new Finestra(); 
      } 
      
      public Finestra(){ 
         
        setBounds (30, 10, 300, 200); 
        setBackground (Color.lightGray); 
        setTitle("Finestra Creata");
        
        mainP = new Panel();
        bCrea = new Button ("Campo di Testo"); 
        bCrea.setBounds(40, 80, 100, 30); 
        bCrea.addActionListener(this); 
        
        bEsci = new Button ("Esci"); 
        bEsci.setBounds(150, 80, 100, 30); 
        bEsci.addActionListener(this);
        
        bEsci2 = new Button ("Torna indietro"); 
        bEsci2.setBounds(150, 80, 100, 30); 
        bEsci2.addActionListener(this);
    
        
        textf = new TextField(15);
        
        mainP.add(bCrea);
        mainP.add(bEsci);
        mainP.setVisible(true);
        
        textP = new Panel();
        textP.add(textf);
        textP.add(bEsci2);
        
        this.add(mainP);
        this.setVisible(true);
        
        
      } 
      
      public void actionPerformed(ActionEvent e){ 
        if (e.getActionCommand().equals(bCrea.getActionCommand())){ 
          mainP.setVisible(false);
          textP.setVisible(true);
          this.add(textP);
          this.validate();
        }
        
        if (e.getActionCommand().equals(bEsci2.getActionCommand())) {
          textP.setVisible(false);
          mainP.setVisible(true);
          this.validate();
        }
        if (e.getActionCommand().equals(bEsci.getActionCommand())) 
          System.exit(0); 
      } 
    }
    Un paio di commenti:

    ho messo tutti gli elementi, finestra per finestra, in pannelli differenti e quindi aggiunto i pannelli al tuo frame.

    il metodo validate serve perché quando si aggiungono elementi ad una finestra, non è detto che vengano ridisegnati correttamente (meglio: a volte non vengono ridisegnati affatto): validate si assicura che la finestra dell'awt venga ridisegnata per intero, quindi vengono effettivamente mostrati i pannelli aggiunti.

    Saluti
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    hai mai provato a cercare degli IDE che fanno tutto oppure dei plug-in?

    se ad esempio utilizzi Eclipse prova a cercare il Visual Editor Project, plug-in molto utile che permette di creare con abbastanza facilità (simile a Visual Basic) l'interfaccia della tua applicazione, il risultato, oltre che più veloce sarà anche più "pulito".
    Let's your dream came true!

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    Grazie ale500 e grazie Andrea1979

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    Ciao Andrea1979, ho provato il tuo codice e funziona alla grande!
    Però ho un problema, se provo a modificare i parametri del setBounds ad esempio per un bottone, non succede niente...è come se la posizione del bottone sia loccata!...Come fare? Grazie ancora

  9. #9
    come layout del frame contenente il bottone devi mettere Absolute...
    Let's your dream came true!

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    ho provato con

    AbsoluteLayout absolute = new AbsoluteLayout();
    setLayout(absolute);

    ma non va!

    Come devo fare?

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.