esse jTextFild seta um nome que vem do banco de dados. porem eu preciso fazer um outro insert mas ao invez de inseri o valor que esta no jTextField preciso inseri o ID que esta no banco.
Exemplo:
ID Nome
1 Douglas
no jTextField, seta o nome no caso “Douglas”.
Tenho que fazer outra inserção porem com o ID no caso “1”.
Eu ja fiz isso com jComboBox. tentei utilizar o mesmo metodo mas não da certo.
Com o jComboBox fiz assim e deu certo.
Cursos curso = new Cursos();
Cursos Id = (Cursos)jComboCurso.getSelectedItem();//salva somente o ID do Curso selecionado
if(Id ==null)
return;
int cod =Id.getId();
//
//
curso.setId(cod);
Com o jTextField tentei fazer assim mas não deu certo
[code]Aluno id = new Aluno();
id.setIDaluno(Integer.parseInt(jTnome.getText())); //salva somente o ID do Curso selecionado
if (id == null) {
return;
}
int cod = id.getIDaluno();
idaluno.setIDaluno(cod);[/code]
Aparece o seguinte erro
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "douglas"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
douglasduarte360,
O erro acontece porque você está tentando converter o valor “Douglas” para um Inteiro, no qual não é possivel.
Para preencher o JText você está consultando de acordo com o código ? você não pode utilizar o mesmo parametro da query de consulta para fazer a inserção ?
Coloca a query que você preenche o Jtext caso não consiga fazer o insert para que possamos ajudar melhor.
Na verdade não seto diretamente do banco o valor do jTextField, vem de uma tabela.
Exemplo:
o cara clica em cima de uma linha da jTable “Aluno”. o que estiver naquela linha vai ser setado no jTextrField.
Populo a jTable com o seguinte metodo
[code]public ArrayList listAluno() throws SQLException {
ArrayList listar = new ArrayList<>();
stmt = connection.createStatement();
try {
PreparedStatement sql = connection.prepareStatement("SELECT * FROM Aluno");
rs = sql.executeQuery();
while (rs.next()) {
Aluno aluno = new Aluno();
aluno.setIDaluno(rs.getInt("ID_aluno"));
aluno.setNome(rs.getString("Nome"));
aluno.setStatus(rs.getString("Status"));
listar.add(aluno);
}
} catch (SQLException e) {
}
stmt.close();
return listar;
}[/code]
Para simplificar, preciso de um metodo que pegue o id em vez do nome.
se eu utilizar o metodo da consulta para inserir ele me traz o nome
Você entendeu por que é que em um JComboBox é possível você fazer o que você tentou fazer, mas em um JTextField não dá?
É que o JTextField guarda apenas texto, não objetos.
Portanto, é necessário fazer uma consulta em algum lugar (talvez em uma lista em memória, ou então no seu banco) para converter “Douglas” no número “1”.
Até porque você poderia escrever “Jorge Mario Bergoglio” em vez de “Douglas” e como isso não está cadastrado no seu banco, você teria um problema de qualquer jeito 