Moin,
Ich habe eine Tabelle, wo ich gerne einzelne Spalten leeren möchte. Als Lösung verwende ich ein JPopupMenu, indem drinne steht "Spalte leeren".
Mein Problem ist, dass sich das JPopupMenu immer wieder neu erstellt wird und nicht verschwindet
Liegt wohl daran, dass ich als ein neues Objekt erzeuge und dieses nicht entferne.
Wie kann ich nun das Objekt killen, wenn ich außerhalb des JPopupmenus klicke?
Ich habe eine Tabelle, wo ich gerne einzelne Spalten leeren möchte. Als Lösung verwende ich ein JPopupMenu, indem drinne steht "Spalte leeren".
Code:
final TabModelPruefung model = new TabModelPruefung(0, pruefungsdaten.getPruefungsID(), this );
model.loadFromADatabase();
tbl_pruefwerte.setModel( model );
tbl_pruefwerte.getColumn("ID").setMinWidth(0);
tbl_pruefwerte.getColumn("ID").setMaxWidth(0);
tbl_pruefwerte.setAutoCreateRowSorter(true);
tbl_pruefwerte.setFillsViewportHeight(true);
model.setFormData();
tbl_pruefwerte.addMouseListener( new MouseListener(){
@Override
public void mouseClicked(MouseEvent mouseEvent) {
if( mouseEvent.getButton() == MouseEvent.BUTTON3 ) {
//Spalte makieren
Point point = mouseEvent.getPoint();
final int rowIndex = ((JTable)mouseEvent.getComponent()).rowAtPoint(point);
((JTable)mouseEvent.getComponent()).changeSelection( rowIndex, 0, false, false );
//Erstellung Contentmenu
final JPopupMenu popupMenu = new JPopupMenu("Popupmenu");
Point test = mouseEvent.getLocationOnScreen();
popupMenu.setLocation( test );
final JMenuItem menuItem = new JMenuItem("Spalte leeren");
menuItem.addActionListener( new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
model.removeData(rowIndex);
}
});
//Anzeigen Contentmenu
popupMenu.add(menuItem);
popupMenu.setVisible( true );
}
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
});
Mein Problem ist, dass sich das JPopupMenu immer wieder neu erstellt wird und nicht verschwindet
Wie kann ich nun das Objekt killen, wenn ich außerhalb des JPopupmenus klicke?