JComboBox em ordem alfabética, sem conexão com Banco de Dados

4 respostas
helder.emiliano

Pessoal seguinte, to com um trabalho de java onde tenho que fazer um sistema de locadora sem banco de dados ou seja , todos os cadastros são armazenados em um arquivo .txt.
na tela de cadastro de midia, ao executar a tela , eu consigo listar todos os atores que tenho cadastrados, no Jcombobox, porém sem ordem alfabética , o que tornaria muito difícil quando estiver muitos atores cadastrados.
segue o código:

for (int i = 0; i <9999; i++) { Integer CadAtor; try { CadAtor =i; AtorBean Ator = lerAtor(CadAtor); if (CadAtor.equals(Ator.getCodigoAtor())) { jbcAtor.addItem(Ator.getNomeAtor()); {Ator.getNomeAtor()})); jtCodigoMidia.requestFocus(); } } catch (NumberFormatException numberFormatException) { JOptionPane.showOptionDialog(this, "Código não é um valor válido", "Erro na consulta", JOptionPane.CLOSED_OPTION, JOptionPane.ERROR_MESSAGE, null, null, null); }
existe alguma maneira de ordená-los alfabéticamente?
Obrigado.

4 Respostas

E

Use o Glazed Lists e seja feliz!

http://publicobject.com/glazedlists/

Basicamente: você deve criar uma SortedList<> e criar a partir dela um EventComboBoxModel<>. Então você associa esse EventComboBoxModel ao Combo (usando setModel), e então você terá um combo sempre ordenado.
Para ter um combo com auto-complete, você pode chamar a classe AutoCompleteSupport do GlazedLists, que ele irá acrescentar o recurso de auto-complete ao seu combo.
OK?

ViniGodoy

Existe sim, dá uma lida: http://www.guj.com.br/posts/list/45985.java#241201

helder.emiliano
eu soube que este código resolveria o problema , eu só não sei o que colocar na variavel nome,na linha 14 ja que no exemplo os nomes são inseridos manualmente e no meu caso eles entrarão automaticamente
import java.awt.*;
import javax.swing.*;
import java.util.*;

public class Estudos extends JFrame{
  public Estudos(){
    super("A classe JComboBox");
    
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
    
    // Cria o array que armazenará os itens do
    // combo box
    String[] nomes = {"Osmar", "Cristina", "Antônio",
      "Marcela", "Joaquim"};  
 
    // ordena os itens
    Arrays.sort(nomes);

    // Cria o JComboBox
    JComboBox combo = new JComboBox(nomes);

    // Adiciona o JComboBox à janela
    c.add(combo);

    setSize(350, 250);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}
ViniGodoy

Você pode ler o link que eu te passei. Ou usar a biblioteca que o entaglement te passou.

O funcionamento desse código aí é explicado no link que te mandei.

Criado 4 de junho de 2010
Ultima resposta 4 de jun. de 2010
Respostas 4
Participantes 3