Como marcar um checkbox?

2 respostas
L

Amigos,

Utilizo o codigo abaixo, para verificar se um checkbox foi selecionado ou nao:

Code:

if(e.getStateChange()==ItemEvent.SELECTED)
     cNegrito = Font.BOLD;
  else
     cNegrito = Font.PLAIN;
if(e.getStateChange()==ItemEvent.SELECTED)

cItalico = Font.ITALIC;

else

cItalico = Font.PLAIN;

Acontece que, preciso posteriormente checar nos componentes qual o tipo de fonte… até aí tudo bem. O que não sei fazer e forçar uma seleção no checkbox.Ou seja, verifiquei que o componente está em negrito, feito isto, quero imediatamente marcar o checkbox do negrito, entenderam, processo inverso.

tentei o setSelected(true) e dá erro.

2 Respostas

I
Não  entendendo esses 2 ifs consecutivos, não se anulariam!?

Eu sempre faço + ou - assim:

JCheckBox jb = new JCheckBox

public void itemStateChanged(ItemEvent ie)

{

Object source = ie.getItem();

if (source == jb)

{

int select = ie.getStateChange();

if (select == ItemEvent.SELECTED)

{

//blablaba…

}

}

}

é melhor postar o erro

<a href="http://www.java-swing-tutorial.com/jcheckbox.html" class="onebox" target="_blank">http://www.java-swing-tutorial.com/jcheckbox.html</a>

Ele(o Item State  sabendo a quem se referir)
L

Blz…

Eles não se anulam pelo seguinte; Deixa eu postar melhor o codigo que ira entender:

cbx1.addItemListener(new ItemListener() {
     public void itemStateChanged(ItemEvent e) {
        mtGetTipoI(e);
       // se for marcado este checkbox, a variavel assume valor de italico, senão Normal.
      
     }
  });

  cbx2.addItemListener(new ItemListener() {
     public void itemStateChanged(ItemEvent e) {
        mtGetTipoB(e);
       // se for marcado este checkbox, a variavel assume valor de negrito, senão Normal.
     }
  });

private void mtGetTipoI(ItemEvent e)

{

if(e.getStateChange()==ItemEvent.SELECTED)

cItalico = Font.ITALIC;

else

cItalico = Font.PLAIN;

}
private void mtGetTipoB(ItemEvent e)

{

if(e.getStateChange()==ItemEvent.SELECTED)

cNegrito = Font.BOLD;

else

cNegrito = Font.PLAIN;

}

Depois uso o metodo abaixo para retornar o tipo escolhido, com base nas selecoes acima:

public int getStyleFonte()

{

tipo=cItalico+cNegrito;

return this.tipo;

}

Até aqui está funcionando perfeitamente, quando seleciono as opções desejadas elas estão fazendo o que deveriam fazer… O problema está sendo quando eu verifico as propriedades do componente e então preciso marcar o checkbox negrito ou o italico, conforme abaixo:

private void mtShowStyleFont()

{

if((componente.getFont().getStyle())==1) {

cbxNegrito.setSelected(true);

cbxItalico.setSelected(false);

}

else if((componente.getFont().getStyle())==2) {

cbxNegrito.setSelected(false);

cbxItalico.setSelected(true);

}

else if((componente.getFont().getStyle())==3) {

cbxNegrito.setSelected(true);

cbxItalico.setSelected(true);

}

else {

cbxNegrito.setSelected(false);

cbxItalico.setSelected(false);

}

}

ERRO:

java Bule java.lang.NullPointerException at Definicoes.mtShowStyleFont(Definicoes.java:394) at Definicoes.(Definicoes.java:101) at Componentes.mtEventPopup(Componentes.java:169) at Componentes.access$200(Componentes.java:5) at Componentes$3.actionPerformed(Componentes.java:94) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17 64) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra ctButton.java:1817) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel .java:419) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257 ) at javax.swing.AbstractButton.doClick(AbstractButton.java:289) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1 109) at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseRelease d(BasicMenuItemUI.java:943) at java.awt.Component.processMouseEvent(Component.java:5093) at java.awt.Component.processEvent(Component.java:4890) at java.awt.Container.processEvent(Container.java:1566) at java.awt.Component.dispatchEventImpl(Component.java:3598) at java.awt.Container.dispatchEventImpl(Container.java:1623) at java.awt.Component.dispatchEvent(Component.java:3439) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450 ) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095) at java.awt.Container.dispatchEventImpl(Container.java:1609) at java.awt.Window.dispatchEventImpl(Window.java:1585) at java.awt.Component.dispatchEvent(Component.java:3439) at java.awt.EventQueue.dispatchEvent(EventQueue.java:450) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh read.java:197) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre ad.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136) at java.awt.EventDispatchThread.run(EventDispatchThread.java:99) C:\Bule>

Criado 24 de novembro de 2006
Ultima resposta 25 de nov. de 2006
Respostas 2
Participantes 2