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.
Não tô 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
http://www.java-swing-tutorial.com/jcheckbox.html
Ele(o Item State tá sabendo a quem se referir)
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>