Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107

    Creare una GUI

    Salve a tutti... non ho molta dimestichezza con JavaOO quindi vorrei chiedervi una mano...
    Come costruisco una GUI con un'etichetta principale, una textarea, due bottoni e una casella di testo (credo si chiami textfield) etichettata??
    Vi posto più o meno come dovrebbe venire.
    Grazie!!!
    Immagini allegate Immagini allegate
    Giovanni

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    O lavori con i LayoutManager, o fai tutto a mano.
    Se decidi di lavorare con i LayoutManager devi prevedere lo schema di posizionamento e ridimensionamento dei vari controlli (a proposito... una textfield etichettata la si costruisce con due componenti: una etichetta e una textfield affiancate), quindi costruire una serie di pannelli che facciano uso del LayoutManager prescelto per lo scopo.

    Se invece decidi di non affidarti ai LayoutManager, devi innanzitutto disabilitarli (ponendoli a null) e prevedere manualmente al dimensionamento e alla collocazione dei componenti tramite il metodo setBounds().


    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
    Nov 2004
    Messaggi
    107
    Il programma deve visualizzare un'interfaccia utente grafica contenente almeno 2 pulsanti, 1 casella di testo e 1 area di testo. La finestra del programma deve essere ridimensionabile e i componenti devono scalare automaticamente quando l'utente modifica le dimensioni della finestra. Se uso Layout Manager tutto questo è possibile?

    PS cos'è layout manager? :
    Giovanni

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da diablo85
    Il programma deve visualizzare un'interfaccia utente grafica contenente almeno 2 pulsanti, 1 casella di testo e 1 area di testo. La finestra del programma deve essere ridimensionabile e i componenti devono scalare automaticamente quando l'utente modifica le dimensioni della finestra. Se uso Layout Manager tutto questo è possibile?

    PS cos'è layout manager? :
    Il LayoutManager è proprio quel "componente" che ti permette di evitare il ridimensionamento e il riposizionamento dovuto a ridimensionamenti della finestra: si arrangia, fa tutto da solo.


    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
    Nov 2004
    Messaggi
    107
    Ottimo!!! Ma... cm si usa???
    Giovanni

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    E' tutto scritto nei tutorial della Sun... qui.


    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

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107
    Fatto! Questo è il codice



    import java.awt.*;
    import java.awt.event.*;
    class GUI extends Frame implements ActionListener {
    public Label lblNome, lblVoto;
    public TextField tf;
    public TextArea ta;
    public Button b1, b2;
    public GUI() {
    setTitle("Progetto Pagelle");
    setLayout(new BorderLayout());
    b1 = new Button("< --");
    b2 = new Button("-- >");
    b1.addActionListener(this);
    b2.addActionListener(this);
    lblNome = new Label ("nome");
    lblVoto = new Label("voto:");
    tf = new TextField();
    Panel nome = new Panel(); // creiamo un pannello per il nome del giocatore
    Panel voto = new Panel(); // creiamo un pannello per il voto
    Panel testata = new Panel(); // creiamo un pannello che contenga i due precedenti
    nome.add(lblNome);
    voto.add(lblVoto);
    voto.add(tf);
    testata.setLayout (new GridLayout(2,0)); // dividiamo testata in due righe
    nome.setLayout(new FlowLayout(FlowLayout.LEFT));// allineo il nome a sinistra
    testata.add(nome);
    testata.add(voto);
    add("North", testata); // posizioniamo testata a Nord
    ta = new TextArea();
    add("Center", ta); pack();
    Panel p1 = new Panel(); // un pannello per il bottone sinistro
    Panel p2 = new Panel(); // un pannello per il bottone destro
    Panel buttons = new Panel(); // e un pannello che contenga entrambi i bottoni
    buttons.setLayout (new GridLayout(0,2)); // dividiamo buttons in due colonne
    p1.add(b1); p2.add(b2);
    p1.setLayout(new FlowLayout(FlowLayout.LEFT)); // allineo il PREVIOUS a sinistra
    p2.setLayout(new FlowLayout(FlowLayout.RIGHT)); // allineo il NEXT a destra
    buttons.add(p1); buttons.add(p2);
    add("South", buttons); // posizioniamo i bottoni a Sud
    addWindowListener(new Chiudi());
    }
    public void actionPerformed(ActionEvent evt) {
    if(evt.getSource()==b1) {
    ta.append("Torna Indietro\n");
    } else if(evt.getSource()==b2) {
    ta.append("Vai avanti\n");
    }
    }
    }

    class Chiudi implements WindowListener {
    public void windowClosing(WindowEvent event) {
    System.exit(0);
    }
    public void windowActivated(WindowEvent event) { }
    public void windowClosed(WindowEvent event) { }
    public void windowDeactivated(WindowEvent event) { }
    public void windowDeiconified(WindowEvent event) { }
    public void windowIconified(WindowEvent event) { }
    public void windowOpened (WindowEvent event) { }
    }

    class Esempio {
    public static void main(String args[]) {
    GUI g = new GUI();
    g.setVisible(true);
    }
    }


    Però adesso come posso fare a far caricare dei dati da un file txt esterno? Più precisamente queste finestre si devono susseguire e ne devono uscire tante quanto il numero contenuto in un file di testo.
    Nell'etichetta1 invece, quella che contiene il nome, deve uscire il nome preso da un altro file di testo.
    Sono stato abbastanza chiaro? Grazie!
    Giovanni

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.