JComboBox MVC

4 respostas
pitiko

Estou criando um programa Desktop utilizando MVC, mas não estou criando a classe entidade pois no caso não é necessaria… então tenho duas classes: a Controle e a Limite. Estou com um problema na hora de preencher uma Jcombobox, tenho que preencher ela da classe Controle. Veja o código abaixo:

Metodo da Classe Controle:

public static String AtualizaComboBoxVariedade() {
		ResultSet rs;
		try {
			rs = stmt.executeQuery("SELECT DISTINCT variedade FROM Vinho;");
			while (rs.next()) {
			 	return rs.getObject(1).toString();
			}
		} catch (Exception ex) {
		}
return "";
}

Chamando a função na classe Limite:

Cvariedade.addItem(ControleVinho.AtualizaComboBoxVariedade());

Só que ele só coloca no combobox um item do Banco de Dados. Como eu faço para colocar todos os dados do banco de dados no combobox?

Obrigado.

4 Respostas

ViniGodoy

Carregue todos os dados num list:

public static List<String> AtualizaComboBoxVariedade() { List<String> dados = new ArrayList<String>(); ResultSet rs = null; try { rs = stmt.executeQuery("SELECT DISTINCT variedade FROM Vinho;"); while (rs.next()) { dados.add(rs.getString("variedade")); } } catch (Exception ex) { throw new RuntimeException("Problemas no BD", ex); } finally { if (rs != null) rs.close(); } return dados; }

No caso do JComboBox, pode ser mais fácil carregar num (argh) Vector. Mas o código é o mesmo, é só trocar List e ArrayList por Vector.

pitiko

Deu certo. Só que ele coloco tudo como um item só no combobox ficou assim: [Item1, Item 2] Tem como colocar cada dado como sendo um item no combobox? Assim:
Item 1
Item 2…

Sendo que eu to adicionando dessa maneira:

Cvariedade.addItem(ControleVinho.AtualizaComboBoxVariedade());
ViniGodoy

Faz um foreach:

for (String item : ControleVinho.AtualizaComboBoxVariedade()) { Cvariedade.addItem(item); }

Cara, seu código está repleto de mas práticas. Métodos estáticos, não respeita a code convention, manter o statement aberto, não tem as classes de negócio. Isso está muito, muito, muito, longe de sequer chegar perto de uma arquitetura MVC.

pitiko

Valeu… vou tentar ajustar o código!

Criado 12 de dezembro de 2010
Ultima resposta 12 de dez. de 2010
Respostas 4
Participantes 2