Esse vai ser um post curto só pra mostrar como associar um menu popup a uma JTable. Eu precisava alterar e excluir um registro selecionado de uma JTable. Vamos ver como fazer isso.
Primeiro crie um objeto JPopupMenu e adicione dois JMenuItem.
JPopupMenu jPopupMenu = new JPopupMenu();
JMenuItem jMenuItemAlterar = new JMenuItem();
jMenuItemAlterar.setText("Alterar");
jMenuItemAlterar.addActionListener(
new java.awt.event.ActionListener() {
// Importe a classe java.awt.event.ActionEvent
public void actionPerformed(ActionEvent e) {
int index = getJTable().getSelectedRow();
// Faça alguma coisa com o item selecionado
}
});
JMenuItem jMenuItemExcluir = new JMenuItem();
jMenuItemExcluir.setText("Excluir");
jMenuItemExcluir.addActionListener(
new java.awt.event.ActionListener() {
// Importe a classe java.awt.event.ActionEvent
public void actionPerformed(ActionEvent e) {
int index = getJTable().getSelectedRow();
// Faça alguma coisa com o item selecionado
}
});
jPopupMenu.add(jMenuItemAlterar);
jPopupMenu.add(jMenuItemExcluir);
Depois só é exibir o menu popup quando o usuário clicar com o botão direito do mouse.
jTable.addMouseListener(
new java.awt.event.MouseAdapter() {
//Importe a classe java.awt.event.MouseEvent
public void mouseClicked(MouseEvent e) {
// Se o botão direito do mouse foi pressionado
if (e.getButton() == MouseEvent.BUTTON3){
// Exibe o popup menu na posição do mouse.
jPopupMenu.show(jTable, e.getX(), e.getY())
}
}
});
E é só isso!
4br4ç05,
nglauber
3 comentários:
Não conseguir fazer. Tem alguma diferença se a JTable estiver em um JScrollPane ?
Oi Wesley,
Como pode ver, o post é bem antigo. Mas creio que não haveria problemas em relação ao JSCrollPane.
4br4ç05,
nglauber
É, realmente é muito antigo mesmo...
Consegui fazer, o problema era que coloquei sem querer, para adicionar ao invés de um JItemMenu, coloquei para adicionar um JButton...
Obrigado Nelson... :)
Postar um comentário