TENHO UMA FRAME QUE OS BOTÕES COMEÇAM DESABILITADOS, QUANDO EU CLICO NA TABELA HABILITA OS BOTÕES E FAZ AS AÇÕES NECESSARIAS,
SÓ QUE O PROBLEMA É QUE OS BOTÕES NÃO SE DESABILITAM DE NOVO, ALGUEM PODE DAR UMA AJUDA !?
Obg.
TENHO UMA FRAME QUE OS BOTÕES COMEÇAM DESABILITADOS, QUANDO EU CLICO NA TABELA HABILITA OS BOTÕES E FAZ AS AÇÕES NECESSARIAS,
SÓ QUE O PROBLEMA É QUE OS BOTÕES NÃO SE DESABILITAM DE NOVO, ALGUEM PODE DAR UMA AJUDA !?
Obg.
Oi,
Tá. E por acaso você desabilitou eles novamente?
Tchauzin!
Sim Sim, Vê ai
if (jTBSistema.getSelectedRow() == -1) {
jBEditar.setEnabled(false);
jBDeletar.setEnabled(false);
jBMenu.setEnabled(false);
} else {
jBEditar.setEnabled(true);
jBDeletar.setEnabled(true);
jBMenu.setEnabled(true);
}
Olá hr_mateus,
não vi todo o código (vc postou apenas um trecho do método?), mas pelo que eu entendi vc quer que o botao fique habilitado ou desabilitado se houver seleção de um row(imagino que se trate entao de uma jtable?).
não sei se vc já fez isso, mas para fazer isso eu coloco um ActionListener no componente que contém a linha que pode ser selecionada e nele coloco o código.
SIM
SIM
Como vc faria, eu fiz do jeito que eu falei e ele só verifica uma vez :?
Oi,
O resultado do jTBSistema.getSelectedRow() nunca é -1 (pelo menos neste teu caso).
Tchauzin!
Lina
quando não tem uma linha selecionada o valor é -1. quando tem uma linha selecionada o valor começa de 0 atée acabar sua tabela !
ou seja : quando não tem linha selecionada o valor é -1 e os botões estao desabilitados
quando tem linha selecionada o valor é 0++ e os botões estao habilitados,
o pró é que só faz uma vez :?
JTable tableT = new JTable();
tableT.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if (lsm.isSelectionEmpty()) {
//codigo, aqui
} else
{
// codigo aqui.
}
}
});
tableT.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
// TODO Auto-generated method stub
}
});
1 pergunta ,
é no codigo da tabela ??
porque se for não funfa.
fiz uma solição só que ela não é bem aceita
criei o msm metodo citado e chamo ele em varias partes do projeto.
gostaria de saber um mais produtivo e menos repetitivo.
Por favor, ao postar tópicos, NÃO ABUSE DAS LETRAS MAIÚSCULAS.
Além de difíceis de ler, são considerada falta de etiqueta.
private void adicionarListeners() {
this.addMouseListener(new MouseListener() {
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseClicked(MouseEvent arg0) {
int linha = getSelectedRow();
//coloca seu código aqui como eu coloquei o meu
if(isElementoSelecionado && linha!=getLinhaSelecionada())
{
getMinhaTableModel().desclickElemento(getLinhaSelecionada());
setLinhaSelecionada(linha);
getMinhaTableModel().selecionouElemento(linha);
}
else
{
setLinhaSelecionada(linha);
getMinhaTableModel().selecionouElemento(linha);
setElementoSelecionado(true);
}
}
});
1 pergunta ,
é no codigo da tabela ??
criei o msm metodo citado e chamo ele em varias partes do projeto.
gostaria de saber um mais produtivo e menos repetitivo.
por isso vc usa o listener. leia sobre o padrao de projetos (design pattern) chamado observer. Em java, vc o implementa através dos listeners - vc só escolhe o que vc vai “escutar” se são clicks do mouse, se são mudanças na tela, se é digitação do teclado…
insisto: olhe os sites que te indiquei
Segui as instrunçoes dos links enviados e deu certo Obg.
