Entao galera eu tenho um JScollPane na minha tela e quero adicionar alguns itens dinamicamente nele entaum faço o seguinte…
List<TipoRecDesp> listaTipo = new TipoRecDespBO().buscarTodosTipos(new TipoRecDesp(null, Constantes.TIPO_DESPESA));
this.lista = new ArrayList<TipoSelecionadoBean>();
for(TipoRecDesp tipo : listaTipo) {
JCheckBox check = new JCheckBox();
check.setText(tipo.getDescricao());
check.setSelected(true);
this.lista.add(new TipoSelecionadoBean(tipo, check));
this.panelScroll.add(check);
}
this.pack();
this.repaint();
porem quando a tela é aberta o itens não estao a aonde deveriam estar eles naum aparecem, alerto que esse codigo esta no construtor da minha classe, mas e ai alguem sabe no que estou errando…
valeu pela atenção de todos que tentarem me ajudar…
Entao galera eu tenho um JScollPane na minha tela e quero adicionar alguns itens dinamicamente nele entaum faço o seguinte…
List<TipoRecDesp> listaTipo = new TipoRecDespBO().buscarTodosTipos(new TipoRecDesp(null, Constantes.TIPO_DESPESA));
this.lista = new ArrayList<TipoSelecionadoBean>();
for(TipoRecDesp tipo : listaTipo) {
JCheckBox check = new JCheckBox();
check.setText(tipo.getDescricao());
check.setSelected(true);
this.lista.add(new TipoSelecionadoBean(tipo, check));
this.panelScroll.add(check);
}
this.pack();
this.repaint();
porem quando a tela é aberta o itens não estao a aonde deveriam estar eles naum aparecem, alerto que esse codigo esta no construtor da minha classe, mas e ai alguem sabe no que estou errando…
valeu pela atenção de todos que tentarem me ajudar…
Estranho, voce quer inserir itens ao JScrollPane ? tem certeza ? JScrollPane é só a API que faz a barra de rolagem, heheh, acho que nao tem como voce inserir qualquer coisa na barrar de rolagem.
CristianPalmaSola10
Sim java para desktop…
CristianPalmaSola10
Então concerteza eu me confundi um pouco…
o que eu quero na verdade é adicionar um check box para cada tipo que esta gravado no banco e pode se adicionado alterado e excluido conforme a lua em que o usuario se encontra…
entaum podendo haver muitos itens queria coloca-los em uma panel que contenham uma barra de rolagem automatica que se haja a necessidade ela aparece e possibilite a rolagem para a visualizacao de todos os itens…
que componente devo usar entao ?
valeu pela ajuda…
R
rof20004
List<TipoRecDesp> listaTipo = new TipoRecDespBO().buscarTodosTipos(new TipoRecDesp(null, Constantes.TIPO_DESPESA));
this.lista = new ArrayList<TipoSelecionadoBean>();
for(TipoRecDesp tipo : listaTipo) {
JCheckBox check = new JCheckBox();
check.setText(tipo.getDescricao());
check.setSelected(true);
this.lista.add(new TipoSelecionadoBean(tipo, check));
this.panelScroll.add(check);
}
this.pack();
this.repaint();
Vamo ver se entendi pelo seu codigo…
Acho que ali em cima ta errado, o this.panelScroll.add(check) deveria estar fora do laço, pois a cada iteracao voce preenche o panelScroll, e sobreescreve a informacao anterior. Na verdade nao conheco bem o JCheckBox, mas acho que tem algo a ver com a logica que voce criou.
R
rof20004
outro detalhe, a cada iteracao, voce da um new JCheckBox(), perceba que a cada new, o nome check permanece o MESMO, logo, voce sempre tera apenas 1 check =D…voce deveria criar 1 nome para cada JCheckBox adicionado.
rof20004 pelo que percebi voce naum conhece java swing pois se conhecesse saberia que o JCheckBox se trata de um componente de tela que possibilita selecionar e deseleciona-lo…
CristianPalmaSola10
valeu charleston10 vou dar uma olhada e qualquer duvida volto a perguntar, se conseguir resolver posto como ficou a solucao, valeu pela atenção…
R
rof20004
CristianPalmaSola10:
rof20004 pelo que percebi voce naum conhece java swing pois se conhecesse saberia que o JCheckBox se trata de um componente de tela que possibilita selecionar e deseleciona-lo…
Nao entendi sua colocacao, o que isso tem a ver ?
Se eu nao conheco swing, voce muito menos, querer inserir informacoes em um JSCROLLPANE.
CristianPalmaSola10
Para ajudar alguem em um problema voce tem que conhecer mais que ela ter mais vivencia no assunto e se voce ja tiver passado por aquela situação melhor ainda… mas se voce naum conhece nada, naum sabe nada, e nem sabe que componente é o que faz me de desculpe mas naum tem como ajudar alguem… eu respondo os foruns depois de ler a duvida e souber alguma coisa que ajude mas eu procuro ja saber aonde estou entrando e com o que estou mexendo e nuam ficar tentando dar tiros no escuro, ninguem sabe tudo mas temos que ter a nocao disso e deixar certos assuntos de que naum temos muito conhecimento para quem tem mais conhecimento naquele assunto,…
CristianPalmaSola10
Posso naum conhecer muito bem mas estou tentando apreender e naum estou bravinho por que alguem me falou o que é verdade…
a minha ide nao acha classe preciso adicionar mais algum jar a minha aplicação ?
R
rof20004
Oloco menino, c ta com problema tao grande assim ? nao fiz nada pra voce, so tentei lhe ajudar, nao fique achando que vou dar de mao beijada a solucao para o seu problema, quem parece que ta com raivinha aqui é voce, so verificar suas postagens e as minhas. Voce e um belo exemplo que falta de educacao gera burrice. Se voce quer aprender, deveria pelo menos ser humilde e reconhecer que alguem quer lhe ajudar, pois mesmo que alguem nao saiba lhe ajudar o que vale é a intencao, voce tem o tipico comportamento de muleque que vem aqui no forum querer que os outros lhe deem tudo facilmente.
que lixo, tentando lhe ajudar, e porque nao consegui lhe ajudar age dessa forma…rsrsrsrs
so uma ultima ajuda, sua logica ta mal feita, corrija.
charleston10
v nao estou conseguindo fazer o seguinte parte…
view plaincopy to clipboardprint? lista.setCellRenderer(new CheckBoxCellRenderer());
a minha ide nao acha classe preciso adicionar mais algum jar a minha aplicação ?
Não, é só criar a classe CheckBoxCellRenderer
importjava.awt.Component;importjavax.swing.JCheckBox;importjavax.swing.JList;importjavax.swing.ListCellRenderer;importjavax.swing.UIManager;importjavax.swing.border.Border;importjavax.swing.border.EmptyBorder;/* * To change this template, choose Tools | Templates * and open the template in the editor. *//** * * @author Charleston Anjos */publicclassCheckBoxCellRendererimplementsListCellRenderer{BordernoFocusBorder=newEmptyBorder(1,1,1,1);publicComponentgetListCellRendererComponent(JListlist,Objectvalue,intindex,booleanisSelected,booleancellHasFocus){JCheckBoxcheckbox=(JCheckBox)value;checkbox.setBackground(isSelected?list.getSelectionBackground():list.getBackground());checkbox.setForeground(isSelected?list.getSelectionForeground():list.getForeground());checkbox.setEnabled(list.isEnabled());checkbox.setFont(list.getFont());checkbox.setFocusPainted(false);checkbox.setBorderPainted(true);checkbox.setBorder(isSelected?UIManager.getBorder("List.focusCellHighlightBorder"):noFocusBorder);returncheckbox;}}
CristianPalmaSola10
Tenho mais o que fazer do que perder o meu tempo com o mago da idiotice, ajude quem vc pode ajudar quem voce naum pode ajudar naum ajude outros que podem ajudar o ajudaram, ta bele…
desculpa se minha logica naum é tao boa mestre da logicas escabrosas…
kkkkkkkkkkkkkk
rachei o bico com sua raivinha agora …
CristianPalmaSola10
charleston10 valeu pela ajuda so lhe peço desculpa pelos comentarios desnecessarios que foram colocados aqui nesse post, as pessoas deveriam achar o que fazer ao inves de ficar se metendo no que naum sabem…
charleston10
Gente é sério isso?
Aff… parecem até criancinhas mimadas brigando.
Não percam o tempo discutindo besteira
Relaxa…
mas ai deu certo ?’
CristianPalmaSola10
to fazendo qualquer duvida eu posto novamente…
CristianPalmaSola10
Ate funcionou so a selecao que ficou fixa naum consigou desmarcar um item…
no casso adicionei todos os componentes ja selecionados mas naum consigou desmarcar-los…
charleston10
Olha eu te passei essa classe, mas eu tenho uma personalizada que tive que alterar pra ficar do jeito que eu queria.. só vc mudar e adaptar pra vc..
Vc de alguma maneira vai ter que passar o limite do seu Array para o For não bugar sendo infinito..
Depois q vc arrumou bonitinho vc tem que passar esses eventos para seu JFrame..
O codigo ta la embaixo..
/** * @description Classe que faz com que a lista de computadores recebam * também o componente checkbox para o usuário poder selecionar. */packagenegocio.apresentacao;importjava.util.logging.Level;importjava.util.logging.Logger;importjavax.swing.JList;importjavax.swing.JCheckBox;importnegocio.clsCSV;/* * Eventos da classe (métodos) * * @clicaLista //o usuario clica na lista e o checkbox recebe valor ou nao * @preencherComputadores //preenche a lista * @limitePC //verifica olimite de dados que a lista ira ter * @selecionarComputadores //seleciona todos computadores * @deselecionarComputadores //deselciona todos computadores * @pegaItemLista //pega o nome da seleção *//** * @data 29/11/2012 * @author Charleston Anjos * @version 12.101 * @alteração 29/11/2012 */publicclassclsJListimplementsinterfaces.interfaceJList{clsCSVcsv=newclsCSV();privateinttotal_linha=0;//VARIAVEL PRINCIPAL (para saber o limite do for)publicclsJList(){//pega o total de linhas que existem no registro csvtry{total_linha=csv.TotalLinha();}catch(Exceptionex){Logger.getLogger(clsJList.class.getName()).log(Level.SEVERE,null,ex);}}publicvoidClicaLista(JListjLista,java.awt.event.MouseEventevt){intindex=jLista.locationToIndex(evt.getPoint());if(index!=-1){JCheckBoxcheckbox=(JCheckBox)jLista.getModel().getElementAt(index);checkbox.setSelected(!checkbox.isSelected());jLista.repaint();}}publicvoidPreencheLista(JListjLista){try{//Permite que a lista possa conter CheckBoxjLista.setCellRenderer(newclsCheckBoxCellRenderer());//objeto que vai guardar os valores da listaObject[]cbArray=newObject[3];//faz um looping até o final//obs: a linha 0 é o nome da colunafor(inti=0;i<total_linha;i++){cbArray[i]=newJCheckBox("1");}//preenche com os dados da tabelajLista.setListData(cbArray);}catch(Exceptione){e.printStackTrace();}}publicvoidSelecionarTodos(JListjLista){for(inti=0;i<total_linha;i++){intindex=i;if(index!=-1){JCheckBoxcheckbox=(JCheckBox)jLista.getModel().getElementAt(index);checkbox.setSelected(true);jLista.repaint();}}}publicvoidDeselecionarTodos(JListjLista){for(inti=0;i<total_linha;i++){intindex=i;if(index!=-1){JCheckBoxcheckbox=(JCheckBox)jLista.getModel().getElementAt(index);checkbox.setSelected(false);jLista.repaint();}}}publicStringPegaItemLista(JListjLista){Stringitem=null;try{/* * faz um busca em todos os checkbox da lista * para verificar quais estão selecionados * e retornando o texto do checkbox *///verifica em toda listafor(inti=0;i<total_linha;i++){//pega o indice pela contagem do forintindex=i;if(index!=-1){//pega o checkbox da lista para fazer a comparaçãoJCheckBoxcheckbox=(JCheckBox)jLista.getModel().getElementAt(index);//verifica se o checkbox da lista foi selecionadoif(checkbox.isSelected()==true){item=checkbox.getText();}}}}catch(Exceptionex){ex.printStackTrace();}returnitem;}}
Passando eventos para a Lista do seu Jframe
clsJList lista = new clsJList(); //objeto da classe
/** Creates new form jfMensagem */
public jfFrame() {
initComponents();
lista.PreencheLista(nome_da_sua_lista);
}
Entao consegui resolver colocando um evento de mouselistener e programando no metodo do mouse click fazendo a logica para trocar a seleção do componente muito obrigado pela sua ajuda amigo valeu mesmo…