Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    7

    [Java] JButton get e set

    Salve,
    ho creato una GUI con all'interno un paio di JTextFields un JComboBox e un bottone, ora spiego cosa vorrei accadesse.

    ho scritto i due metodi set e get per la variabile che conterrà il contenuto di un textfield, e quando premo il bottone me la setta.

    in un'altra classe io vorrei usare questa variabile, allora creo un nuovo oggetto (classe contenente la gui che ha una struttura a catena costruttore richiama una funzione che crea frame che richiama una funzione che crea panel con sopra i componenti che ho detto sopra) e poi richiamo il metodo get, ovviamente mi ritorna null perchè prende il valore che ha nel momento in cui viene inizializzato il tutto, se controllo la variabile nell'altra classe nel metodo set è effettivamente cambiata ma nel metodo get no.

    come faccio a fare in modo di farmi dare il get solo quando ho premuto il bottone?

    forse è una domanda sciocca ma ci sto passando giornate...

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non so come sia organizzato il tutto, ma la cosa più semplice che mi viene in mente è di inizializzare l'oggetto che ha necessità del valore ritornato dal get solo quando viene effettivamente premuto il JButton.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    7
    codice:
    public class CertificateAuthorityGUI implements ActionListener{
    	/**
    	 * constructor ControlGUI - initialize the variables Frame and Panel.
    	 */
    	public CertificateAuthorityGUI(){
    		frame = new JFrame();
    		panel = new JPanel();
    		createFrame();
    	}
    	/**
    	 * method createFrame initialize the properties of the JFrame.
    	 */
    	public void createFrame(){
    		frame = new JFrame("Control Validity of a Certificate");
    		frame.setSize(700,400);
    		frame.add(searchPanel());
    		frame.setVisible(true);	
    	}
    	/**
    	 * method searchPanel() draws the components that are shown on the frame.
    	 * @return panel
    	 */
    	public JPanel searchPanel(){
    		panel.setBackground(Color.pink);
    		panel.add(new Label("Input Country :"));
    		panel.add(this.cb = new JComboBox(countryList));
    		this.cb.setSelectedIndex(-1);
    		this.cb.addActionListener(this);
    		panel.add(new Label("Common name :"));
    		panel.add(this.nameField = new JTextField("Insert name",40));
    		panel.add(new Label("Organization :"));
    		panel.add(this.orgField = new JTextField("Insert Organization name",40));
    		panel.add(this.button = new JButton("Click to Create a Certificate"));
    		this.button.addMouseListener(new MouseAdapter(){
    				public void mousePressed(MouseEvent e){
    					writedName=nameField.getText();
    					writedOrg = orgField.getText();
    					String name = "CN="+writedName+" , O="+writedOrg+" , CO="+choosenCountry;
    					ca.set(name);
    				}});
    		
    		return panel;
    	}
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		cb = (JComboBox)e.getSource();
    		this.choosenCountry = (String) cb.getSelectedItem();	
    	}
    	private String[] countryList = {"CH", "IT", "GB", "US", "FR", "ES", "DE"};
    	private JFrame frame;
    	private JPanel panel;
    	private String writedOrg;
    	private String writedName;
    	private String choosenCountry;
    	private JTextField nameField;
    	private JTextField orgField;
    	private JButton button;
    	private JComboBox cb;
    	private String name;
    	private CertificateAuthorityViewer ca;		
    }
    dall'altra parte ho semplicemente set(String s) e String get()
    ho provato ad inizializzare l'oggetto ca nel costruttore, nell'evento, per niente ...

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    72
    Ciao
    usa questo costruttore per la classe CertificateAuthorityViewer
    codice:
    public CertificateAuthorityViewer(String name){
            this.name=name;
        }
    poi istanzia ca in mousePressed in questo modo:
    codice:
    public void mousePressed(MouseEvent e){
    	writedName=nameField.getText();
    	writedOrg = orgField.getText();
    	String name = "CN="+writedName+" , O="+writedOrg+" , CO="+choosenCountry;
                 ca=new CertificateAuthorityViewer(name);       
    }
    Così il metodo get ritornerà sempre un valore diverso da null

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    7
    cavolo non ci avevo proprio pensato....sono proprio fusa.....grazie mille mi hai salvata....

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.