Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Riempire JTextField dinamicamente

    mi sto impiccando su una cosa che è di sicuro una cretinata.
    ho una JComboBox che ha come primo valore un asterisco.
    io vorrei ottenere questo:
    -se la textfield è vuota prende il l'elemento selezionato dalla combo
    -sennò appende l'elemento selezionato a quello che già c'era

    ho fatto un pò di tentantivi ma finisce sempre che mi impicco.
    alla fine ho provato anche con uno StringBuilder:
    codice:
        private void comboToItemStateChanged(java.awt.event.ItemEvent evt) {
            StringBuilder sb = new StringBuilder();
            if (!"*".equals(comboTo.getSelectedItem().toString())) {
                if (txtTo.getText().length() != 0) {
                    sb.append(txtTo.getText()).append(",").append(comboTo.getSelectedItem().toString()).append(",");
                } else {
                    sb.append(comboTo.getSelectedItem().toString()).append(",");
                }
            }
            txtTo.setText(sb.toString());
        }
    in pratica mi duplica sempre le voci sulla textfield.
    sennò ottengo la sostituzione di quello che c'è.

  2. #2

    Re: Riempire JTextField dinamicamente

    Originariamente inviato da fermat
    in pratica mi duplica sempre le voci sulla textfield.
    sennò ottengo la sostituzione di quello che c'è.
    Senza complicarti troppo, puoi fare così:
    codice:
    /**
     * @(#)Example.java
     *
     *
     * @author Vincenzo
     * @version 1.00 2011/7/5
     */
    
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    
    public class Example extends JFrame implements ItemListener{
    	JComboBox comboBox;
    	JTextField textField;
        
        /**
         * Creates a new instance of <code>Example</code>.
         */
        public Example() {
        	super("Example");
        	
        	this.comboBox = new JComboBox(new String[]{"*", "Primo", "Secondo", "Terzo", "Quarto"});
        	this.comboBox.addItemListener( this );
        	this.textField = new JTextField();
        	
        	this.add( this.textField, BorderLayout.NORTH );
        	this.add( this.comboBox, BorderLayout.CENTER );
        	
        	this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        	this.setSize(300, 80);
        	this.setVisible(true);
        }
        
        @Override
        public void itemStateChanged(ItemEvent e){
        	if( e.getStateChange() == ItemEvent.SELECTED && !e.getItem().equals(this.comboBox.getItemAt(0)) ){
        		String text = this.textField.getText();
        		this.textField.setText( (text.equals("")) ? e.getItem().toString() : text.concat(", ").concat(e.getItem().toString()) );
        	}
        }
        
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            new Example();
        }
    }

  3. #3
    perfetto, funziona alla perfezione.
    grazie!!

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.