Sobre Jcombobox

como permitir que digite apenas em letras maiúsculas dentro do jcombobox?

1 curtida

tente adptar:

Não da certo pra jcombobox

Vc pode fazer de duas formas, verificar se o CapsLock tá ligado, ou converter tudo pra UpperCase.

  1. Verificar o Caps Lock:

.

public static void main(String[] args) {
        boolean capsLigado = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK );
        if (capsLigado) {
            System.out.println( "Caps Lock ligado!" );
        } else {
            System.out.println( "O Caps Lock está desligado, você só poderá digitar neste campo se o mesmo estiver ligado!" );
        }
    }
  1. ToUpperCase:

.

public static void main(String[] args){
      String X = ""; //A String X

      X = "abner"; //Um nome atribuído a String
      System.out.println(X); //Imprime esse nome

      X = X.toUpperCase(); //Esse .toUpperCase deixa tudo maíusculo
      System.out.println(X); //Imprime esse nome com o .toUpperCase setado
   }

poderia ser esse 1 método só que não tinha interesse de verificar se o caps lock esta ligado ja nesse 2 ex. não iria da certo pois é um caso de Combobox e não da pra setar um texto e sim .additem() ai ficaria complicado mostra ja todo maiuscu quando fosse digitando…
e também não da pra colocar released que não funciona no combobox

Mas cara, o que você quer fazer? Adicionar um item ou pesquisar algum item?

ao digitar… tenho o jcombobox e varias texto dentro dele… caso não encontre o que procura ele escreve um novo no jotacobox ai queria que quando ele estivesse escrevendo as letras independentemente se o caps lock estivesse ligado ou não as letras aparecessem todas maiusculas… eu conseguir com um jTextField mas com o Jcombobox não…

Sua pergunta inicial não tem nada a ver com isso que vc ta falando agora. Vc tem que ser específico de cara. Você tá usando banco de dados?

tem tudo haver… minha pergunta é só saber como escrever maiusculo dentro de um jcombobox…

Liga o CAPS LOCK.

Bom, eu vou ter mais um pouco de paciência.

Deixa o jComboBox como editable. Ele por padrão vem desabilitado. -Isso vai deixar você escrever na mesma.

Creio que vc tá recuperando os dados de algum lugar. Quando fizer essa recuperação, coloca o toUpperCase.

Exemplo:

ConectaBanco conecta = new ConectaBanco(); //Classe de conexão
public void preencherCombo(String SQL, JComboBox combo, String coluna) {
    conecta.conexao(); // Inicia a conexão pra o método ter sucesso.
    conecta.executaSQL(SQL); //Aqui seria a sua SQL, exemplo: "SELECT * FROM cadastro"
    try {
        combo.removeAllItems(); //Remove todos os itens, por exemplo: se tiver alguns itens por padrão, ele remove tudo.
        conecta.rs.first(); 
        do { //Aqui começa a repetição
            combo.addItem(conecta.rs.getString(coluna).toUpperCase()); //Isso recupera e já deixa em maíusculo.
            combo.setSelectedItem(null); //Isso é pra quando o seu form abrir, não deixar nenhum item selecionado.
        } while (conecta.rs.next()); // Aqui "termina" a repetição
    } catch (SQLException ex) {
        //JOptionPane.showMessageDialog(null, "Erro ao receber dados");
        ex.printStackTrace(); // Caso haja algum erro, vai mostrar na Saída.
    }
    conecta.desconecta(); // Fecha a conexão aberta após falha/sucesso, pra não ter um acúmulo de conexões.
}

Na hora de chamar esse método:

public static void main(String[] args) {
    new PreencherCbo().preencherCombo("SELECT * FROM cadastro", jComboBox, "nome");
    //Em ordem:
    //SQL: "SELECT * FROM cadastro"
    //JComboBox: É o nome da sua comboBox, coloca o nome dela ali.
    //Coluna: Suponhamos que você quer recuperar a coluna "nome" da sua tabela de cadastro, coloca entre as aspas "nome".
}