Tem um JComboBox que recebe dinamicamente os itens, conforme o usuario escolhe outros campos na tela. O fato é que tem casos onde um item tem um texto grande. Eu gostaria que o JComboBox tivesse um “width” maximo X, independentemente dos itens que irei colocar nele.
O fato dele estar redimensionando de forma automatica detona o layout da tela.
Tentei usar:
setSize();
setPreferedSize();
setMaximumSize();
mas o Java nao deu bola pros metodos, continuou redimensionando.
Sera que vou ter que checar se o texto é mais que Y caracteres e corta-lo antes de adiciona-lo a um item do JComboBox, para isso nao acontecer? Pois esta solucao é “feia” do ponto de vista de programacao.
Basicamente o PreferedSize iria resolver. Mas, pelo q vc relatou, isto se deve por vc, talvez, ter definido no seu layout que o componente, por exemplo, iria preencher todo espaço restante de seu componente.
Vc esta suando qual layout?
Estou usando GridBagLayout.
Eu fiz o segte: tirei o setMaximumSize(), que deveria ser O metodo mas nao funcionou, tirei tambem o setSize(), e antes de jogar itens novos, usei o setPreferedSize(), e funcionou! Obg pela forca!!!
Nova dúvida:
Como fizeste pra carregar dinamicamente o combobox?
Obrigado
Já me ajudaram em outro forum:
addElement para adicionar
e
removeAllmaislagumacoisaquenaolembroagora para limpar tudo
Valew
Bonissauro
Já me ajudaram em outro forum:
addElement para adicionar
e
removeAllmaislagumacoisaquenaolembroagora para limpar tudo
Valew
Bonissauro
Eu criei um JTextLookupCombo filho de JComboBox e no evento actionPerformed (no caso se o usuario pressionar ENTER) eu chamo um metodo que faz:
removeAllItems();
PreparedStatement pstmt = connLocal.prepareStatement(SQL);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
addItem(rs.getString("Campo..."));
}
rs.close();
pstmt.close();
Se quiser olhar o codigo completo do componente baixe o arquivo:
https://submacro.dev.java.net/files/documents/1076/10192/SubMacroForms.zip
e veja arquivo correspondente.