Visualizzazione dei risultati da 1 a 7 su 7

Discussione: label dinamiche

  1. #1

    label dinamiche

    Salve ragazzi..mi serve ancora il vostro aiuto....vi spiego il mio problema..
    Ho creato due classi; ognuna delle quali estende un JPanel.
    In una delle due ho un bottone e, azionandolo, devo settare il testo della label presente sull'altro pannello.
    I pannelli sono inseriti in un frame con modalità CardLayout e non c'e nessun problema perchè li scorro benissimo.
    La chiamata che faccio, nell'evento del JButton, è n.jLabel.setText("....");
    Dove n è la seconda classe, quella che contiene la Label...
    Avete delle soluzioni??
    Grazie come sempre

  2. #2
    codice:
    JLabel jl=new JLabel();
    
    ..
    
    jl.setText("...");
    jl.validate();
    
    ..

  3. #3
    Forse non mi sono spiegato bene o non capisco la tua risposta..
    La label io l ho creata sul pannello...la devo solo pilotare da un altro pannello..
    ecco perchè facevo la chiamata n.jLabel.setText("...");

  4. #4
    Originariamente inviato da toninosanchez
    Forse non mi sono spiegato bene o non capisco la tua risposta..
    La label io l ho creata sul pannello...la devo solo pilotare da un altro pannello..
    ecco perchè facevo la chiamata n.jLabel.setText("...");
    Java funziona a puntatori.
    Fai in modo che il pannello 2 che deve controllare la label abbia il puntatore alla label contenuta nel pannello 1.
    Ricordati che dopo il setText() devi chiamare il metodo validate() di JLabel.

    Spero di essermi spiegato.

    JPanel 1 contiene il JLabel
    JPanel 2 contiene il JButton

    Devi passare il JLabel come parametro al JPanel 2 oppure al ActionListener del JButton.

  5. #5
    Tu6stato chiarissimo...e ke io sn1novellino...e nn m c ritrovo troppo..

  6. #6
    Mi potresti fare1esempio concreto (d codice)??
    t ringrazio

  7. #7
    codice:
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
    
    public class MainFrame2 extends JFrame implements ActionListener{
    	private JButton button=null;
    	private JLabel label=null;
    	public static void main(String[] args){
    		new MainFrame2();
    	}	
    	public MainFrame2(){
    		JPanel jp1=new JPanel();
    		JPanel jp2=new JPanel();
    		if(button==null){
    			button=new JButton("Modifica");
    			button.addActionListener(this);
    			jp1.add(button);
    		}
    		if(label==null){
    			label=new JLabel("Pippo");
    			jp2.add(label);
    		}
    		this.setLayout(new GridLayout(1,2));
    		this.add(jp1);
    		this.add(jp2);
    		this.pack();
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setVisible(true);
    	}
    	
    	public void actionPerformed(ActionEvent ae){
    		if(label.getText().compareTo("Pippo")==0)
    			label.setText("Pluto");
    		else
    			label.setText("Pippo");
    		label.validate();
    	}
    }
    La cosa importante è che il metodo actionPerformed() deve avere a disposizione un puntatore alla label perché è lì dentro che bisogna modificare il testo dentro la JLabel e ovviamente dopo il setText() bisogna richiamare il metodo validate()
    (il metodo validate() non serve in questo caso ma ci sono componenti per cui serve dopo la modifica come per esempio i JPanel)

    P.S. L'ho fatto adesso in 5 minuti alle 2:30 di mattina e oggi alle 14:00 ho pure un esame

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.