Erro no metodo get

20 respostas
R

Ola pessoal, estou aqui mais uma vez para pedir encarissidamente a ajuda de vcs. Estou enfrentando sérios problemas nesta droga de metódo, que não da certo de forma nehuma. O erro principal java.lang.NullPointerException, pois, naum consigo pegar o que vem da frame. O erro acontece justamente naquela linha comentada.

// o problema esta neste metódo.
public void escreverXMLpage4() {
		
		String Banco = txtBanco.getText();
		String Driver = comboDriver.getText();// naum pega o que foi digitado aqui. 
		String URL = comboURL.getText();
		String Usuario = txtUser.getText();
		String Senha = txtSenha.getText();
		String Schema = txtSchema.getText();
		String Cache = txtCache.getText();
		String Read = comboRead.getText();

		writer.write("<Connection name=" + '"' + Banco + '"'
				+ " jdbcDriver=" + Driver + '"'  + '"' + "\n ");
		writer.write("jdbcUrl=" + '"' + URL + '"' + " jdbcUser=" + '"'
				+ Usuario + '"' + "\n");
		writer.write("jdbcPassword=" + '"' + Senha + '"' + " schemaName=" + Schema
				 + '"' + " " + '"' + " readOnly=" + '"' + Read + '"'
				+ " cacheSize=" + '"' + Cache + '"' + "/>\n\n");
		writer.write("<Parameters>\n");
		writer.write("<Item name=" + '"' + "data_ini" + '"'
				+ ">01/01/1901</Item>\n");
		writer.write("</Parameters>");
		writer.write("</Configuration>");
		writer.close();
	}
}

20 Respostas

M

se o “comboDriver” for um comboBox ele não vem com método getText,
tente usar um “getItem”
valeu!

R

Desculpa, esqueci de informar o que eu tenho é uma combo em SWT e ela esta definida assim; por isso eu usei o getText();
o getItem, naum da certo.

//combo driver
		final  Combo comboDriver = new Combo(controls, SWT.DROP_DOWN | SWT.BORDER );
		comboDriver.setToolTipText("Selecione o Driver do Banco de Dados");
		comboDriver.add("com.progress.sql.jdbc.JdbcProgressDriver");//progress
		comboDriver.add("net.sourceforge.jtds.jdbc.Driver");//sql server
		comboDriver.add("com.mysql.jdbc.Driver");// my sql
		comboDriver.add("org.firebirdsql.jdbc.FBDriver");//firebird
		comboDriver.add("com.ibm.db2.jcc.DB2Driver");//db2
M

Bah, dai não vo consegui te ajuda muito… trabalhei só com swing até o momento…

R

vlw pela intenção, espero ki tenha alguem ki conheça SWT

R

i o erro continua a me perseguir… :shock:

thegoergen

a combo em SWT não tem algum getSelectedText ou algo assim, para pegar o selecionado??
sei lá tambem, só conheço Swing…

R

Aqui estão todos os principais métodos disponiveis para a combo. Agora o f… é saber como usar, tentei o getText, por que ja tinha usado em outras ocasiões e tinha dado certo. No entanto agora da ‘java.lang.NullPointerException’, isso quer dizer que ele naum tah pegando o que vem da frame, certo ? :?

comboDriver.getText();  
comboDriver.getItem(index);
comboDriver.getItemCount();
comboDriver.getItemHeight();
comboDriver.getItems();
comboDriver.getSelectionIndex();
comboDriver.getSelection();
thegoergen

Tenta usar:

comboDriver.getItem( comboDriver.getSelectionIndex() );

Agora eu não sei o que ele retorna, mas pelo que parece retora o item que está no índice selecionado…

FabricioPJ

Tente substituir isso:

String Driver = comboDriver.getText();

por isso:

Object Driver = comboDriver.getText();

Comigo aconteceu um problema parecido, foi só mudar o tipo da variável que o erro sumiu e o programa funcionou.
Não sei se vai ser o seu caso.

R

Pior que não deu… o erro é o mesmo!!! Isso ja tah me dando dor de cabeça… :frowning:

thegoergen

E tem algo selecionado?

Você usa NetBeans? debugue e veja todas as informações que tem no comboDriver. Achei que o getSelectedindex ia funcionar…

R

Uso o eclipse, e pelo debuguer do eclipse qdo chego nesta variavel ele naum inicia, fica nulla. O mais curioso que os campos txt’s funcionam corretamente, é so a combo que nau m funciona. Será que existe uma forma de usar O getSelectedindex para pegar o indice, e setar o campo txt correspondente ao indice? … desculpe se eu falei besteira, mas é que eu naum sei mais o que fazer.

thegoergen

mas e você não consegue nem pegar qual a posição (index) selecionado?
POrque deve ter um jeito de você conseguir todas as opções da combo, e daí quando você conseguir o índice, e só pegar essa posição da lista.(estou chutando, não conheço SWT…)

R

SWT é a primeira vez que uso tbm, naum tem muita diferença pra swing, a lógica é quase a mesma, muda alguma coisa apenas em alguns métodos. Eu vou tentar colocar os itens da combo dentro de um array de Strings e tentar pegar o indice, axo ki da, o problema é como posso fazer pra pegar o texto do indice 1 p.ex? se eu setar fixo é facil, mas tenho varios indices na combo.

thegoergen

Dá uma olhada aqui: http://help.eclipse.org/stable/nftopic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/widgets/Combo.html

Talvez te ajude

R

Entaum, consigo pegar o indice e o texto também, porém dentro do metodo correspondente a combo. Porém ainda naum to conseguindo axar uma forma de pegar esse texto da combo e jogar dentro do meu metódo que gera classes, ou seja dentro do metodo gerarArquivoXMLPage4();
Consegui desta forma pegar o texto e o indice:
Vou continuar na luta aqui, qualquer coisa de nova eu posto novamente , e contudo, continuo aceitando sugestões para esse problema.

//criando a combo
final Combo comboURL = new Combo(controls, SWT.DROP_DOWN | SWT.BORDER);
                // adicionado elementos em um array de strings
		String [] itemsUrl = {"jdbc:jtds:sqlserver://LOCALHOST/bi_teste" ,
		"jdbc:mysql://LOCALHOST/bi_teste"}; 
		comboURL.setItems(itemsUrl);
               // metódo listener da combo
		comboURL.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				if (comboURL.getSelectionIndex()==0 || comboURL.getSelectionIndex()==1){
					System.out.println ( "Url: " + comboURL.getText());// peguei o texto
				}

			}
		});
A

raphaelFree:
SWT é a primeira vez que uso tbm, naum tem muita diferença pra swing, a lógica é quase a mesma, muda alguma coisa apenas em alguns métodos. Eu vou tentar colocar os itens da combo dentro de um array de Strings e tentar pegar o indice, axo ki da, o problema é como posso fazer pra pegar o texto do indice 1 p.ex? se eu setar fixo é facil, mas tenho varios indices na combo.

comboDriver.getSelection().toString();

ou

(String) comboDriver.getSelection();

Balena

quais são as possibilidades de Set para o comboBox…
dá uma olhada nesse link aqui…
não sei se vai ajudar muito…
mas o comboBox já retorna uma String não é o caso de usar um cast…
http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/ComboComboBoxExample2.htm

Ayanami

Não… os gets do ComboBox retornam Objects.
Quando eu tive que fazer algo parecido, eu usei um cast mesmo…

Nesse próprio exemplo que você passou o autor usa:
String petName = (String)cb.getSelectedItem();

Balena

Pior que nem vi nada parecido com o que você falou, mas não entendo nada do comboBox, foi apenas uma tentativa, mas valeu a dica…
abraço

Criado 25 de novembro de 2008
Ultima resposta 13 de dez. de 2008
Respostas 20
Participantes 7