Page 1 of 2 12 LastLast
Results 1 to 15 of 27

Thread: Domande di Java

  1. #1
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default Domande di Java

    ho notato che questo forum è frequentato da diversi programmatori,quindi provo a chiedervi alcune cose, che ho l'esame imminente e ho alcuni problemi irrisolti.

    Allora, per l'esame avevo l'idea di portare un programma per la gestione di una biblioteca,all'avvio si inserisce user e password, e a seconda si può accedere alla finestra USER o alla finestra ADMIN.
    detto questo , i problemi che ho per ora sono i seguenti:

    a)Nella finestra iniziale per ora ho solo 1 pannello, che contiene i vari elementi (Titolo,SubTitolo,Textfield User ,TextField Psw,JButton Accedi), per avviarsi va anche bene, ma in quanto layout fa schifo.La mia idea sarebbe creare 3 pannelli distinti (1 con Titolo e Sub Titolo, 1con i due TextField, 1 con il Pulsante accedi) in modo da poter gestire meglio tale layout c'è un modo di inserire questi 3 pannelli sopra un altro pannello praticamente vuoto,impostato con un layot Grid Layout (3,2)?

    b)Nei TextField completo il campo cosi user=new JTextField ("<user>",30)
    quando però vado a scrivare devo cancellare con il backspace <user> e poi scrivere, c'è un modo per fare si che quando clicco quello spazio, la scritta <user> scompaia?

    Grazie in anticipo


  2. #2
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    Altre domande:

    a)c'è un modo per fare si che premendo un pulsante che avvia un nuovo pannello, far scomparire il vecchio,in modo da visualizzare il nuovo nella finestra?perchè allo stato attuale devo far partire un nuovo JFrame a parte.


  3. #3
    Lieutenant
    Join Date
    Feb 2004
    Location
    Bresso
    Posts
    4.683

    Default

    Le API grafiche Java non le conosco bene, pero' qualcosa ti posso dire dalla prospettiva C#/.NET.

    Per il punto b del primo post: puoi catturare l'evento del TextField relativo al click del mouse, e impostare la stringa del TextField stesso a stringa vuota.

    Per il punto a del secondo post: i componenti grafici dovrebbero avere un metodo che li rende visibili o meno. Potresti avere piu' pannelli sovrapposti e visualizzare solo quello che ti interessa in un determinato momento. In C# c'e' una property apposita, presumo che ci sia un metodo analogo in Java.

  4. #4
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    Quote Originally Posted by Hardcore View Post
    ho notato che questo forum è frequentato da diversi programmatori,quindi provo a chiedervi alcune cose, che ho l'esame imminente e ho alcuni problemi irrisolti.

    Allora, per l'esame avevo l'idea di portare un programma per la gestione di una biblioteca,all'avvio si inserisce user e password, e a seconda si può accedere alla finestra USER o alla finestra ADMIN.
    detto questo , i problemi che ho per ora sono i seguenti:

    a)Nella finestra iniziale per ora ho solo 1 pannello, che contiene i vari elementi (Titolo,SubTitolo,Textfield User ,TextField Psw,JButton Accedi), per avviarsi va anche bene, ma in quanto layout fa schifo.La mia idea sarebbe creare 3 pannelli distinti (1 con Titolo e Sub Titolo, 1con i due TextField, 1 con il Pulsante accedi) in modo da poter gestire meglio tale layout c'è un modo di inserire questi 3 pannelli sopra un altro pannello praticamente vuoto,impostato con un layot Grid Layout (3,2)?
    Direi che puoi mettere due jPanel nello stesso jFrame e li ordini con il border layout (north quello che vuoi lasciare sopra, south quello sotto).

    All'interno del jPanel che piazzi sopra metti altri due jPanel e li ordini con il flow layout oppure con il border layout usando east e west

    b)Nei TextField completo il campo cosi user=new JTextField ("<user>",30)
    quando però vado a scrivare devo cancellare con il backspace <user> e poi scrivere, c'è un modo per fare si che quando clicco quello spazio, la scritta <user> scompaia?

    Grazie in anticipo
    Si, puoi.
    Se non ricordo male ci dovrebbe essere l'evento di click sul textfield.
    Basta quindi che lo gestisci nel listener impostando, quando avviene l'evento, il valore del textfield come "" :O

    Quote Originally Posted by Hardcore View Post
    Altre domande:
    a)c'è un modo per fare si che premendo un pulsante che avvia un nuovo pannello, far scomparire il vecchio,in modo da visualizzare il nuovo nella finestra?perchè allo stato attuale devo far partire un nuovo JFrame a parte.
    Gioca con il metodo .setVisible nel listener, gestendo l'evento di pressione del jButton
    Last edited by Axet; 3rd September 2007 at 18:59.

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

  5. #5
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    il punto c ho risolto passando per riferimento il pannello principale e quando viene premuto Accedi, viene creata una nuova finestra e chiuso il pannello principale della nuova finestra


  6. #6
    Lieutenant Commander Alkabar's Avatar
    Join Date
    Feb 2004
    Location
    Netherlands.
    Posts
    19.975

    Default

    se vuoi il posizionamento assoluto, nella tua classe in cui assembli la GUI

    /** Add Component Without a Layout Manager (Absolute Positioning) */
    private void addComponent(Container container,Component c,int x,int y,int width,int height)
    {
    c.setBounds(x,y,width,height);
    container.add(c);
    }

    Trick gratuito .

    Dove il container è il pannello. Aspe che mi leggo il resto.

  7. #7
    Lieutenant Commander Alkabar's Avatar
    Join Date
    Feb 2004
    Location
    Netherlands.
    Posts
    19.975

    Default

    Quote Originally Posted by Hardcore View Post
    il punto c ho risolto passando per riferimento il pannello principale e quando viene premuto Accedi, viene creata una nuova finestra e chiuso il pannello principale della nuova finestra
    Va bene, non c'è niente di malvagio in tutto ciò, lol.


    edit: Axet ha detto bene per la GUI, per gestire l'evento di click, la classe in cui assembli la GUI deve implementare l'interfaccia MouseListener(o simile), poi devi scrivere quello che succede dentro al metodo che gestisce il click.
    Last edited by Alkabar; 3rd September 2007 at 20:42.

  8. #8
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    problema con la gui del TextField,

    ho creato una classe per il MouseListener,
    al suo interno c'è il metodo mouseclick che per me sarebbe ottimo, ma nn so cosa scrivergli dentro per dirgli di far diventare "" il textField, l'unico listenere che ho modificato per ora usava System.exit()..


  9. #9
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    Cioè usi le GUI senza nemmeno saper impostare sta cosa -.-
    Usa il metodo .setText del TextField quando gestisci l'evento "e = MouseClick" inerente al Textfield:

    TextField.setText("");

    Btw se usi eclipse ti fa vedere tutti i metodi vari dell'oggetto che t'interessa

    edit:
    anzi no, mi sa che l'evento mouseclick non va bene.. ci dovrebbe essere un evento per quando selezioni la textfield se non ricordo male, è un po' che non uso le GUI
    Last edited by Axet; 3rd September 2007 at 22:34.

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

  10. #10
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    son riuscito a risolver passando per riferimento i Textfield , all'actionlistener

    altra cosa un po piu complessa,

    La finestra è composta da Due TextField User e Password
    e da un Button Accedi

    io devo fare che scrivo user poi scrivo la psw e queste due stringhe vengono mandate al pannello di Accedi in cui poi l'actionlistener farà quello che io voglio.
    il problema però per me sta appunto nel passare tali stringhe quando ho scritto user e psw, per ora riesco solo a passarle all'inizio quando inizializzo i 3 pannelli.


    Per Capirci meglio:
    _________________________________
    import java.awt.*;

    import javax.swing.*;

    //Pannello Iniziale Del Programma
    public class PanIng extends JPanel {






    public PanIng(JFrame riferimento){
    super();
    JFrame referto=riferimento;
    PanButMain but;
    PanTextMain txtmain;
    PanTitoliMain titlemain;
    //Inizializzazione dei 3 sotto pannelli
    but= new PanButMain(referto);
    txtmain= new PanTextMain();
    titlemain=new PanTitoliMain();

    setLayout(new GridLayout(3,1));

    add(titlemain);
    add (txtmain);
    add(but);


    }

    }

    _____________________________________
    //Pannello dei TextField

    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;

    import javax.swing.event.*;
    public class PanTextMain extends JPanel implements ActionListener{
    //Pannello dei TextField del Main
    JTextField user,psw;
    Font usrpsw= new Font("Arial",Font.BOLD,10);
    public PanTextMain(){
    super();
    setLayout(new GridLayout(1,2));
    setPreferredSize(new Dimension(100,10));
    // //Definisco il TextField user
    user = new JTextField("USER: ",30);
    user.setAlignmentX(100);
    user.setFont(usrpsw);
    user.setAlignmentY(300);


    //Definisco il TextField psw
    psw= new JTextField("PASSWORD: ",30);
    psw.setAlignmentX(300);
    psw.setFont(usrpsw);
    psw.setAlignmentY(300);

    add(user);
    add(psw);
    }



    }

    _________________________


    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    public class PanButMain extends JPanel implements ActionListener {
    //Pannello contenente il JButton Accedi del Pannello Main
    JButton accedi;
    Font usrpsw= new Font("Arial",Font.BOLD,10);
    JFrame refer;
    public PanButMain(JFrame riferimento){
    super();
    //Proprietà Del Pulsante Accedi;
    accedi=new JButton("Accedi");
    accedi.setAlignmentX(200);
    accedi.setAlignmentY(400);
    accedi.setFont(usrpsw);


    refer=riferimento;
    add(accedi);
    accedi.addActionListener(this);

    }

    public void actionPerformed (ActionEvent e){refer.setVisible(false);
    JFrame User= new JFrame("User Biblioteca");
    User.setBounds(400,400,640,480);
    UserPan Pannelloutente=new UserPan();
    Container cont=User.getContentPane();
    cont.add(Pannelloutente);
    User.show();
    }




    }


    io voglio che scrivo la user nel textfield user, la psw nel textfield psw, queste due stringhe vengano passate poi al pannello UserPan dove nell'action listener verrà eseguito quello che desidero, c'è un modo per farlo?
    sto provando ma mi passa sempre le due stringhe vuote usando il metodo getText(), che riesco a passare all'inizializzazione del button, nn dopo


  11. #11
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    Non ho letto tutto il programma che non ho assolutamente sbatta, ho letto solo l'ultima cosa che hai scritto.

    Hai provato a salvare il valore che ottieni con il getText in una stringa e passare poi la stringa?

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

  12. #12
    Lieutenant Commander ahzael's Avatar
    Join Date
    Apr 2004
    Location
    Melbourne/Roma
    Posts
    7.270

    Default

    Usa netBeans 5.5 che ha il menu grafico per fare la GUI, si bello bello che lo sai fare in codice, ma quando poi vai li fuori, usi i diversi tool che ci sono in giro, la gente non pretende mica che tu scrivi col notepad
    Ovvio che devi saperli usare anche col notepad eh..........
    cmq vabbe ,ti butto sti 2 programmi che ho fatto un po di tempo fa per darti un idea.
    Enjoy


    il secondo era troppo grande per metterlo su wayne
    http://files-upload.com/files/479172/ass3.zip
    Attached Files Attached Files
    Last edited by ahzael; 4th September 2007 at 01:14.
    In diretta dalla terra dei canguri
    On WoW Daggerspine - soon Outland
    Ermucco Lev 60 Fury Warrior
    Ahzael Lev 70 Epic Druid
    **** OnDeira Albion ****
    Ahzael Skyscream RR7L1 Smiter No.1 di vorti
    E tutti gli Ahzael del mondo
    ************************
    Themaltake Soprano VX AMD 5000 2 gb Corsair
    Gigabyte GeForce 8600GT 512 , x2 250 WD
    Bachelor Computer Science, software engeneering @ Deakin University
    Honours of IT completed Thesis : "A novel IPTV system through mix P2P and Multicast system"


    Currently PhD
    Research "DDos attacks guard through multicore systems"
    "I PLAY" pd, magari avercelo il tempo per giocare :asd:

  13. #13
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    Se ha un esame la gui la deve gestire via codice per forza eh t_t

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

  14. #14
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    con un po di fatica ho risolto tutto, ora sono all'ultimo grande problema

    devo leggere da file delle stringhe e confrontarle con la stringa User che io ho inserito, il mio problema è che nn so come fare

    faccio un esempio Ho il file User.txt che contiene

    pippo
    paperino
    topolino
    ciccio
    pluto



    io da user inserisco pluto

    ora la mia idea sarebbe di creare una lista dinamica,che aggiunge piano piano ciò che legge e intanto confronta, quando trova l'uguale dice OK User Trovato.

    come si fa


  15. #15
    Tanek's Avatar
    Join Date
    Apr 2004
    Location
    Milano, Midgard
    Posts
    11.225

    Default

    Ma non è meglio che il check lo fai solo ad utente inserito? (cioè quando l'utente fa invio) Non man mano (da quello che ho capito dalla tua descrizione).

    Leggiti la javadoc del BufferedReader per questa operazione cmq

    Tanek™: Game Designer & Algorithm Mastermind, Team Leader & SW Engineer and Dungeon Master!
    "Datte Foco"™ and "Ma KITTESENCULA"™ are registered trademarks of Tanek Entertainment Inc.
    ‎"One of these days, scientists will discover that second X chromosome contains nothing but nonsense and twaddle." - Sheldon Cooper
    Per non dimenticare:
    Spoiler


Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
[Output: 109.58 Kb. compressed to 91.77 Kb. by saving 17.81 Kb. (16.25%)]