Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Discussione: JButton e testo

  1. #1
    Utente di HTML.it L'avatar di iMet
    Registrato dal
    Jan 2009
    Messaggi
    168

    JButton e testo

    Ciao a tutti, ho compilato questa piccola parte di codice, in questo momento ho due bottoni situati esattamente dove voglio. Ora vorrei che una volta cliccato il bottone compaia nel frame una parte di testo che ho scritto, una sorta di descrizione che mi occupi pero tutta la pagina, in cui poi inserire un tasto che riporti al menu iniziale.

    codice:
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    
    public class Main extends JFrame implements ActionListener {
    
    	private static final long serialVersionUID = 1L;
    	
    	public static void main(String[] args) {
    		new Main().setVisible(true);
    	}
    	
    	private Main() {
    		super("Prova");
    		setSize(600, 600);
    		setResizable(false);
    		setDefaultCloseOperation(EXIT_ON_CLOSE);
    		setLayout(null);
    		
    // Button settings
    		
    		JButton button = new JButton("Button");
    		JButton button2 = new JButton("Button2");
    		button.addActionListener(this);
    		button2.addActionListener(this);
    		
    		button.setBounds(80, 180, 200, 200);
    		button.setFont(new Font("Arial", 1, 40));
    		
    		button2.setBounds(320, 180, 200, 200);
    		button2.setFont(new Font("Arial", 1, 40));
    		
    		add(button);
    		add(button2);
    		
    	}
    	public void actionPerformed(ActionEvent e) {
    	
    	}
    	
    }
    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: JButton e testo

    Originariamente inviato da iMet
    una volta cliccato il bottone compaia nel frame una parte di testo che ho scritto, una sorta di descrizione che mi occupi pero tutta la pagina
    Il punto più delicato è proprio questo: "tutta la pagina".
    Non hai usato un layout manager ma il posizionamento "assoluto". Generalmente questo è sconsigliabile ma non sto ora a discutere su questo.
    Una cosa che puoi fare è creare in anticipo un componente di testo posizionato per occupare quanto vuoi ma nascosto, poi all'occorrenza lo rendi visibile.

    P.S. ma se devi ripetere questo più volte o da altri eventi in seguito, ti consiglio comunque di cercare un design che sfrutta uno o più layout manager (es. CardLayout).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di iMet
    Registrato dal
    Jan 2009
    Messaggi
    168

    Re: Re: JButton e testo

    Originariamente inviato da andbin
    Non hai usato un layout manager ma il posizionamento "assoluto". Generalmente questo è sconsigliabile ma non sto ora a discutere su questo.
    Non ho usato il Layout altrimenti non mi faceva posizionare i button dove avrei voluto seguendo le coordinate cartesiane.
    Originariamente inviato da andbin Una cosa che puoi fare è creare in anticipo un componente di testo posizionato per occupare quanto vuoi ma nascosto, poi all'occorrenza lo rendi visibile.
    Puoi spiegarmi meglio questa parte? ci sono delle funzioni particolari che dovrei usare? Il mio obiettivo è rendere quei bottoni come dei veri e propri link che puntano alla pagina di testo/foto.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: JButton e testo

    Originariamente inviato da iMet
    Puoi spiegarmi meglio questa parte? ci sono delle funzioni particolari che dovrei usare? Il mio obiettivo è rendere quei bottoni come dei veri e propri link che puntano alla pagina di testo/foto.
    Semplicemente dicevo di creare e aggiungere un componente di testo (come hai fatto con i pulsanti) ma tenerlo inizialmente nascosto. Poi lo rendi visibile. (metodo setVisible).

    C'è solo un aspetto delicato: in un container lo z-order (la sequenza di painting dei componenti) è sempre stato fisso/critico. Nel senso che il primo componente che aggiungi, può stare visivamente sopra gli altri e così via. Quindi il componente di testo dovresti aggiungerlo per primo.
    Solo a partire da Java 5, Container ha set/getComponentZOrder ma non credo che ti servano.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di iMet
    Registrato dal
    Jan 2009
    Messaggi
    168

    Re: Re: Re: Re: JButton e testo

    Originariamente inviato da andbin
    Semplicemente dicevo di creare e aggiungere un componente di testo (come hai fatto con i pulsanti) ma tenerlo inizialmente nascosto. Poi lo rendi visibile. (metodo setVisible).

    C'è solo un aspetto delicato: in un container lo z-order (la sequenza di painting dei componenti) è sempre stato fisso/critico. Nel senso che il primo componente che aggiungi, può stare visivamente sopra gli altri e così via. Quindi il componente di testo dovresti aggiungerlo per primo.
    Solo a partire da Java 5, Container ha set/getComponentZOrder ma non credo che ti servano.
    Nel caso introducessi un file txt nella cartella del progetto Java e usassi il "public void readTxt() " potrebbe funzionare?
    P.s
    Come faccio a dirgli (intendo come sintassi di codice) che solamente dopo il click di quel preciso bottone mi faccia vedere il testo da me scelto?
    Scusami ma sono nuovo per quanto riguarda il linguaggio Java, sto imparando, fino ad ora solamente PHP Html/css.

    Saluti

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Re: Re: JButton e testo

    Originariamente inviato da iMet
    Nel caso introducessi un file txt nella cartella del progetto Java e usassi il "public void readTxt() " potrebbe funzionare?
    Per il caricamento del testo fai pure come preferisci. Suggerisco però solo 2 cose:
    a) la gestione del caricamento da txt magari non farla nella/e classe/i dove gestisci la interfaccia utente (non sovraccaricare di responsabilità le classi!). Magari mettila insieme ad altri eventuali metodi in una classe di "utilità" o magari in una classe apposita.
    e
    b) se il file txt farà sempre "parte" della applicazione, non caricarlo come file da file-system ma come "risorsa" (vedi getResourceAsStream di java.lang.Class).

    Originariamente inviato da iMet
    Come faccio a dirgli (intendo come sintassi di codice) che solamente dopo il click di quel preciso bottone mi faccia vedere il testo da me scelto?
    Qui dipende, detto in generale, se si usa una unica implementazione di ActionListener oppure una per ciascun pulsante (ci sono vari scenari che si basano in genere anche sulle inner-class).

    Il codice che hai postato mostra che l'ActionListener è unico poiché implementato nel tuo frame. E ci sono 2 pulsanti registrati. Devi solo distinguere quale pulsante è ... lo sai guardando il "source" dell'evento (da e.getSource() ) che basta compararlo usando == con i reference dei pulsanti (e questo è buon motivo per tenere i componenti come variabili di istanza e non locali).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di iMet
    Registrato dal
    Jan 2009
    Messaggi
    168

    Re: Re: Re: Re: Re: Re: JButton e testo

    Originariamente inviato da andbin Devi solo distinguere quale pulsante è ... lo sai guardando il "source" dell'evento (da e.getSource() ) che basta compararlo usando == con i reference dei pulsanti (e questo è buon motivo per tenere i componenti come variabili di istanza e non locali).
    In questo modo?
    codice:
    public void actionPerformed(ActionEvent e) { 
    if (e.getSource().equals(button)) { 
    
    //collegamento al secondo frame 
    
    }
    Come collego il secondo frame, intendo puramente come codice

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Re: Re: Re: Re: JButton e testo

    Originariamente inviato da iMet
    codice:
    if (e.getSource().equals(button)) {
    equals va anche bene ma di norma basta == perché i reference ... sono quelli, nel senso che se registri un listener su una istanza X di JButton e questo invia un evento ... la sorgente è quella istanza X.

    Originariamente inviato da iMet
    Come collego il secondo frame, intendo puramente come codice
    Intendi aprire un secondo JFrame? Semplicemente lo istanzi e lo rendi visibile esattamente come hai fatto con il primo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it L'avatar di iMet
    Registrato dal
    Jan 2009
    Messaggi
    168

    Re: Re: Re: Re: Re: Re: Re: Re: JButton e testo

    Originariamente inviato da andbin
    Intendi aprire un secondo JFrame? Semplicemente lo istanzi e lo rendi visibile esattamente come hai fatto con il primo.
    Dopo l'istruzione == ho provato a usare il setVisible per fare in modo che compaia il secondo frame, ma non funziona.

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Re: Re: Re: Re: Re: Re: JButton e testo

    Originariamente inviato da iMet
    Dopo l'istruzione == ho provato a usare il setVisible per fare in modo che compaia il secondo frame, ma non funziona.
    Fai vedere cosa hai fatto ... altrimenti come si può capire cosa non va?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.