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 ?
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.
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.<init>(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
voçê precisa inicializar o seus objetos JTextField
Ah tá certo…valeu…pela ajuda