Olá,
duvida simples…
tenho uma textfield e quero torná-la publica para usar em outras telas…
como posso fazer isto??
Att, Wesley
[resolvido] tornar jtextfield público
11 Respostas
me confundi um pouco…
vc tá usando a classe JTextField de javax.swing ou um textfield numa aplicação web?
não não…
Estou fazendo uma aplicação java normal…
E arrastei o textfield para meu form…
E queria saber se tem como tornar este textfield publico, para eu poder acessar em outros forms…
Certo?
Bom…você pode declara-lo na classe
public class Teste {
JTextField tf = new JTextFIeld(10);
//resto
}
e quando for chamalo usar
Teste.tf
Mas pra que você quer isso?
bom… vc pode jogar esse JTextField com um índice e jogar numa classe…
algo do tipo…
public class JTextFieldModel {
private int id;
private JTextField textField;
//joga os getters e setters necessários
}
não sei se isso resolveria o seu problema…
o que vc tá tentando fazer? algum cadastro?
Bem o que eu estou fazendo é um cadastro de contas a pagar…
e tem um campo para colocar o fornecedor…
Então pra não ter que digitar o fornecedor o usuário dá um click no botão (…), para procurar os fornecedores…
no botão (…) eu chamo outra tela, que possui uma tabela mostrando os fornecedores…
até ai está tudo certo…
mas o que eu quero é que quando der um click em cima do fornecedor alvo, essa tela com a tabela de fornecedores feche e o fornecedor escolhido fique na minha textfield, que está na minha tela de cadastro…
Então eu pensei em simplesmente dar um setText na minha textfield, colocando o fornecedor…
Faça a sua tela modal retornar o valor selecionado. Você pode se basear no JOptionPane para fazer isso. Segue exemplo:
String valorDigitado = JOptionPane.showInputDialog("Meu JOptionPane");
System.out.println(valorDigitado);
Já fiz o teste e está tudo certo…
fornecedor = (String) tabFornecedor.getValueAt(tabFornecedor.getSelectedRow(), tabFornecedor.getSelectedColumn());
JOptionPane.showMessageDialog(null,""+fornecedor);
Ele me retorna o fornecedor que eu clickei…
Mas preciso que o nome deste fornecedor fique na minha textfield, que está em outra tela…
eu nao aconselho isso mas vc pode passar o Jtextfield como parâmetro ao abrir a dialog pra escolher seus fornecedores... dae la vc da o settext a vontade pq vai ter a referencia do campo... isso vai resolver seu problema ae mas seu código vai ficar sem zoado...
algo assim:
JDialog MinhaDialog = new JDialog( SeuCampo );
MinhaDialog.setVisible(true);
e na dialog
public class minhaDialog extends JDialog {
JTextField campo;
MinhaDialog( JTextField meuCampo ) {
campo = meuCampo;
// faz tudo q tem pra fazer e antes de fechar a dialog
campo.setText( codigoFornecedor );
// fecha a dialog
}
}
O NetBeans declara todos os componentes swing como private. Não tem como eu mudar ele para public???
Tem como fazer no NetBeans sim porém, não sei se você sabe mas isso foge dos padrões da Orientação a Objetos.
Quando eu comecei a mexer eu tbm tive esse problema.
O correto a se fazer é quardar o valor que você quer um objeto de uma classe e passar por parametro para o outro formulário.
Mas caso queira mudar mesmo assim:
Selecione o TextField, vá em ‘Código’ e em ‘Modificadores de variáveis’ coloque public.
Eu tenho que começar a estudar mais e rever meus erros…
mas obrigado, era isso que eu queria…