Ajuda com valor

Pessoal tem alguma função no Java , tipo se a pessoa passa um valor “” , objeto assuma 0 , tenho uma tela com vários jtextfields nem todos jtextfields serão inseridos valores , uma idéia é usar vários if´s mas não queria usar ou terei que usar ? :smiley:

Amigo,

Vc pode criar um método get q pega o valor dos textfields desejados e jogar esse valores num array de strings.

Depois vc faz um contado com o tamanho da string e coloca um if soh.

Era isso q vc keria?


public void getValues()
{
for ( int i = 0; i < fields.length; i++ ) {  // fields = array de textfields 
 array [ i ] = fields[ i ].getText();         // array = array de strings
 if ( array [ i ].equals ( "" ) )
  fields [ i ].setText ( 0 );
   }
}

Esse código supondo q vc criou um array de textfields para facilitar a captura dos valores.

Espero ter ajudado

[]'s

rmilani, outra alternativa é vc criar um textfield personalizado, herdando de JTextField, com essas restrições.Assim, sempre quando vc precisar, vc usa os especiais, quando não, use os normais da API. :wink:

Acho que seria isso mesmo criar essa função …

Como assim criar um textfield personalizado ?

Cara houve um problema :

criei um vetor JTextFields:

           private JTextField[] arrayCampos = new JTextField[15];
           arrayCampos[0].setBounds(new Rectangle(200,70,80,25));

Qndo chamo a tela ele me gera uma exception:

java.lang.NullPointerException
	at FrameReciboSalario.&lt;init&gt;(FrameReciboSalario.java:154)
	at FramePrincipal$5.actionPerformed(FramePrincipal.java:141)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.AbstractButton.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Coloco comentário nesta linha :

 arrayCampos[0].setBounds(new Rectangle(200,70,80,25));

A tela abre normal , não entendi ? o erro

O que o Ironlynx quis dizer é que vc deve criar uma classe que herde de JTextField com as funcionalidades que vc quer adicionar, algo parecido com:

public class NoEmptyTextField {

	public void setText(String t) {
                if ((t == null) || (t.equals(""))
                    super.setText("0");
                else
                    super.setText(t);
	}

}

Assim, sempre que vc precisar de um JTextField com essa “característica”, é só utilizar essa classe,

JTextField blabla = new NoEmptyTextField();
// ao invés de
JTextField blabla = new JTextField();

E o seu array deu NullPointerException pq arrayCampos = new JTextField[15]; não instancia os JTextFields dentro da array, e sim a própria Array… pra criar os JTextFields vc teria que fazer algo do tipo:

  for (int i = 0; i < arrayCampos.length; i++)
     arrayCampos[i] = new JTextField();

espero ter ajudado :slight_smile:

voçê precisa inicializar o seus objetos JTextField

Ah tá certo…valeu…pela ajuda