ComboBox no Thinlet não seleciona opção

2 respostas
Mauricio_Linhares

Opa galera,

To usando Thinlet pela primeira vez pra desenvolver um projeto aqui e estou com um problema esquisito. Quando o formulário é populado eu preciso marcar a opção no combobox referente a opção que está selecionada no objeto do modelo, só que por algum motivo esquisito quando eu tou um setInteger() passando a opção que deve ser marcada no combo ele não está selecionando nada.

É necessário fazer mais alguma coisa além de marcar o atributo "selected" do combobox?

Método que faz a marcação no combo:

public static void marcarSelecionado( Persistivel selecionado, Thinlet thinlet, Object combo ) {
		
        logger.debug("Marcando opção seledionada no combo: " + selecionado);
		
	Object[] opcoes = thinlet.getItems(combo);
	int indice = -1;

	logger.debug("O valor do objeto selecionado é: " + selecionado);		
		
	for (int x = 0; x < opcoes.length ; x++ ) {
			
		logger.debug( "O valor do índice é: " + thinlet.getString( opcoes[x], "name") );
		logger.debug( "O valor do texto é: " + thinlet.getString( opcoes[x], "text") );
		
		if ( selecionado != null && selecionado.getId().toString().trim().equals(  thinlet.getString( opcoes[x], "name") ) ) {
			 indice = x;
			 logger.debug( "O índice selecionado foi: " + x + " com o ID: " + thinlet.getString( opcoes[x], "name"));
		 }
			
	}
	thinlet.setInteger(combo, "selected", indice);
	thinlet.repaint(combo);
	logger.debug( "Marcando a posição: " + indice );
}

Logs da aplicação:

2006-03-30 14:36:44,812 DEBUG [AWT-EventQueue-0] gui.CadastroDeFuncionarios (CadastroDeFuncionarios.java:87) - Atualizando o combo de setores 2006-03-30 14:36:44,812 DEBUG [AWT-EventQueue-0] gui.GuiUtils (GuiUtils.java:31) - Adicionando escolhas ao combo: java.util.AbstractList$Itr@18b8914 2006-03-30 14:36:44,828 DEBUG [AWT-EventQueue-0] gui.GuiUtils (GuiUtils.java:62) - Marcando opção seledionada no combo: ID: 8324 Nome: Desenvolvimento Class: class org.maujr.promanager.model.Setor 2006-03-30 14:36:45,078 DEBUG [AWT-EventQueue-0] gui.GuiUtils (GuiUtils.java:67) - O valor do objeto selecionado é: ID: 8324 Nome: Desenvolvimento Class: class org.maujr.promanager.model.Setor 2006-03-30 14:36:45,078 DEBUG [AWT-EventQueue-0] gui.GuiUtils (GuiUtils.java:71) - O valor do índice é: 8324 2006-03-30 14:36:45,078 DEBUG [AWT-EventQueue-0] gui.GuiUtils (GuiUtils.java:72) - O valor do texto é: Desenvolvimento 2006-03-30 14:36:45,078 DEBUG [AWT-EventQueue-0] gui.GuiUtils (GuiUtils.java:76) - O índice selecionado foi: 0 com o ID: 8324 2006-03-30 14:36:45,078 DEBUG [AWT-EventQueue-0] gui.GuiUtils (GuiUtils.java:71) - O valor do índice é: 11729 2006-03-30 14:36:45,078 DEBUG [AWT-EventQueue-0] gui.GuiUtils (GuiUtils.java:72) - O valor do texto é: Administração 2006-03-30 14:36:45,156 DEBUG [AWT-EventQueue-0] gui.GuiUtils (GuiUtils.java:83) - Marcando a posição: 0

2 Respostas

jWeslley

Provavelmente vc esta deixando o combobox com a propriedade editable ativada assim ele seleciona a opcao mas nao atualiza o texto do combobox
assim ou vc desabilita esta propriedade ou entao utilize o codigo abaixo q atualiza o texto do combo apos a linha abaixo:



thinlet.setInteger(combo, selected, indice);

String textCombo = indice == -1 ? “” :

thinlet.getString( opcoes[indice], text);

thinlet.setString(combo, text, textCombo);

:slight_smile:

Mauricio_Linhares

Era o “editable” mesmo!

Valeu :smiley:

Criado 30 de março de 2006
Ultima resposta 30 de mar. de 2006
Respostas 2
Participantes 2