Ae galera, to com a seguinte duvida… To desenvolvendo um software de contabilidade só que não sei como adicionar campo de textos caso precise de mais entradas do que já tem pre definido…
por exemplo: Meu programa ta rodando com 5 campos de texto pra cadastras as entradas e 5 pra cadastrar as saidas, gostaria de um botão de adicionar campo de texto caso precisem de 6 campos de entrada, deu pra entender?
Assim mesmo, conseguir adicionar quantos campos de texto precisar…
Sabe como eh o código pra isso?
V
vanderlanio
vc pode fazer de tiversas formas com jsf vc faz com uma mão nas costa, ( use o framework que mais lhe agradar ) mais pode fazer com java script… nesce site ai que te mandei tem os fontes… para pode procurar outros e tem varios exemplos no google usando js !
Só que é pra um trabalho da faculdade e ele nao qr q seja javaScript ele pediu um programa Desktop, to fazendo no netBeans como a maioria la da sala…
Seria se grande ajuda =/
M
mauricionarcizo
cria o texto em tempo de execução quando ele pressionar o botao de adicionar o campo, tu redimenciona a tua tela se necessário. É só deixar o código para criar o textfield pronto porem sem executa-lo, então ao clicar no botão irá executar esse código e exibirá na tela.
A
alanalfa
Cara não sei como faz isso… Não tenho muita experiencia com Java e esse trabalho ta me dando uma dor de cabeça grande…
Você poderia me passar o trecho de código fazendo isso q você falou?
M
mauricionarcizo
cara, eu nao vou te dar código nenhum, pode ser que alguem aqui do forum venha e te de o código, mas eu acho que o forum é para ajudar e nao dar o codigo pronto, se voce tentar e mostrar codigo que fez, te ajudarei a fazer o resto…
Isso é para garantir que voce correu atras e estudou para sanar a sua dúvida… e aumentar as chances de voce ser um grande programador!
então vai lá no seu código e cria um metodo com o codigo de criação do jtextfield e deixe esperando o botao ser clicado…
A
alanalfa
Cara esse código que pedi não tem nada a ver com o tabalho de contabilidade, minha duvida eh a seguinte:
import java.awt.event.*;
import javax.swing.*;
public class JanelaSimples {
public JanelaSimples() {
/* Cria o botão */
final JButton botaoLimpa = new JButton("Limpa");
/* Cria o campo de texto */
final JTextField campoTexto = new JTextField(10);
/* Cria uma janela */
final JFrame janela = new JFrame ("Janela Simples");
janela.setSize(300,100);
/* Adiciona os componentes na janela */
JPanel painel = new JPanel();;
painel.add (botaoLimpa);
painel.add (campoTexto);
janela.getContentPane().add(painel);
/* Quando o usuário clicar no botao, limpa o campo de texto */
botaoLimpa.addActionListener (new ActionListener() {
public void actionPerformed (ActionEvent e) {
campoTexto.setText("");
}});
/* Exibe a janela */
janela.setVisible(true);
}
}
Eu sei como adicionar campos de texto codificando, no braço… se eu quizer quantos campos de texto quiser nesse codigo só criar novos JTextField e add eles…
Só que queria criar um botão que faz isso, tentei no JFrame coloca um Jpainel, declarei o campo de texto igual a esse código “final JTextField campoTexto = new JTextField(10);” e tentei no mouseClick no botao colocar o trecho “painel.add (campoTexto);” achei que pela logica adicionaria só que nem aparece… Não sei mais o que tentar, ja tentei varias vezes, pesquisei e não consegui por isso q vim pedir o trecho de código como ultima instancia…
Se poderem enviar agradeço ou se poderem so me dizer onde estou errando agradeço também!
M
mauricionarcizo
atah, achei que tava pedindo o codigo para tudo, foi mal…
só uma pergunta esse seu codigo ai acima, pelo menos mostra os componentes na tela, mas ao clicar no botao ele nao executa nada, ou este codigo mostra nada na tela?
A
alanalfa
Esse codigo eu o fiz a um tempo atras sem usar o JFrame, ele so cria um campo de texto e um botão limpar…
Como o trabalho de contabilidade o professor quer com uma interface gráfica decente, decidi fazer com o JFrame, organizando tudo ao meu gosto, tanto por que a interface fica melhor quanto pra aprender a mexer nas funcionalidades do netBeans, só que me deparei com esse de adicionar campo de texto, foi ai que comecei a pesquisar e nao encontrei nada que me ajudasse e vim tirar essa duvida aqui…
Queria basicamente um botao que quando eu clicasse aparecesse campos de texto, cada clique um campo de texto, tem como fazer?
M
mauricionarcizo
bom para isso voce tem que adicionar um actionlistener ao seu botao, então adicionar o código do jtextfield…
seubotao.addActionListener(newActionListener){@OverridepublicvoidactionPerformed(ActionEvente){chamaMetodoAdicionaTextField();}};publicvoidchamaMetodoAdicionaTextField(){JTextFieldtxt=newJTextField();//... código restante do txt, não esquecer de setar a posição dele...}
não esquecer de adicionar o seu txt ao jpanel
A
alanalfa
Valeu cara, vo tentar isso o/
A
alanalfa
Cara acho que nao entendi seu código direito, algum desse smetodos vão no MouseClicked do meu botão?
M
mauricionarcizo
pode colocar dentro do seu evento também, o que melhor for para voce
eu peguei o seu código e fiz e deu tudo certinho, criou um novo txt a cada clique no botão…
tenta ai…
não esqueça dessa linha do código dentro do evento actionperformed… painel.revalidate(); depois de adicionar o jtextfield
A
alanalfa
Deu certo adicionar o campo de texto só que so adicionou uma vez… =/
M
mauricionarcizo
ueh, estranho aqui está adicionando perfeito…
tu da criando um novo jtextfield?
ex.:
caso não, posta ai o codigo para eu dar uma olhada
A
alanalfa
ta assim:
publicstaticvoidmain(String[]args){/* Cria o botão */finalJButtonbotaoAdd=newJButton("Adicionar");/* Cria o campo de texto */finalJTextFieldcampoTexto=newJTextField(10);/* Cria uma janela */finalJFramejanela=newJFrame("Janela Simples");janela.setSize(300,100);/* Adiciona os componentes na janela */finalJPanelpainel=newJPanel();;painel.add(botaoAdd);janela.getContentPane().add(painel);/* Quando o usuário clicar no botao, limpa o campo de texto */botaoAdd.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){painel.add(campoTexto);painel.revalidate();}});/* Exibe a janela */janela.setVisible(true);}}
Só cria um, pq?
M
mauricionarcizo
cara, eu te disse para criar um outro jtextfield…faz assim
ali na linha onde tem painel.add(campoTexto); substitui para painel.add(new JTextField(10)); e o resto deixa do que jeito que tá
A
alanalfa
São motivos como esse que me fazem querer desistir dessa vida de programador, apesar de eu gostar quando ocorrem erros como esses da uma raiva…
Enfim, deu certo aqui, valeu cara o/
M
mauricionarcizo
cara, erros acontecem até mesmo com os melhores programadores, pode ter certeza disso, um hora ou outra o cara erra em coisas muito simples…
Só irá aprender após muito apanhar na linguagem, voce irá aprender com os teus erros para na proxima vez prestar mais atenção em cada linha de código, e assim vai indo, cada erro uma nova lição.
eu ainda tenho muita coisa para aprender, mas já fiquei quase uma manha e uma tarde em cima de um código de 20 linhas para descobrir que era um erro ridiculo de ter sido feito… isso são coisas de programador!
O
ode-to-joy
mauricionarcizo,
valeu! eu tb não conseguia atualizar um jpanel por colocar o panel.revalidate() no lugar errado.