Fehlerhaftes Verhalten bei gleichzeitigen Verwendnen von PopUpMenu und JDialog?!

ElJarno

Mitglied
Hi Leute,
hab soeben in meinem Programm einen ganz kuriosen Fehler entdeckt. Und zwar öffne man ein PopUpMenu sobald man auf den TableHeader klickt. Dieser wird korrekt geschlossen sobald man einen Eintrag auswählt oder halt woanders hinklickt. Und jetzt hab ich ich noch einen Dialog der sich öffnet sobald ich eine bestimmte Spalte in der Tabelle klicke. Schließe ich diesen über das Windows X lässt sich beim erneuten Aufruf des PopUps dieses nur noch schließen in dem man einen Eintrag auswählt nicht mehr wenn man woanders hinklickt.

Gruß Jan
 
Moin,

hab soeben in meinem Programm einen ganz kuriosen Fehler entdeckt. Und zwar öffne man ein PopUpMenu sobald man auf den TableHeader klickt. Dieser wird korrekt geschlossen sobald man einen Eintrag auswählt oder halt woanders hinklickt. Und jetzt hab ich ich noch einen Dialog der sich öffnet sobald ich eine bestimmte Spalte in der Tabelle klicke. Schließe ich diesen über das Windows X lässt sich beim erneuten Aufruf des PopUps dieses nur noch schließen in dem man einen Eintrag auswählt nicht mehr wenn man woanders hinklickt.

so wirklich verstanden habe ich zwar nicht, was Du uns sagen möchtest :rolleyes:

Aber möglicherweise hilft Dir das Stichwort "modal" (vor allen in Bezug auf den erwähnten Dialog) weiter .....

Gruß
Klaus
 
Ich versuchs nochmal, also wenn ich das PopUp öffne kann ich über die MenuItems eine Aktion ausführen. Wenn ich dies tue schließt das PopUp automatische()verschwindet). Wenn ich woanders hinklicke also sowas wie focusLost schließt dieses auch automatisch. Das letztere funktioniert nach dem Aufruf eines Dialogs nicht mehr.
 
Moin,

Ich versuchs nochmal, also wenn ich das PopUp öffne kann ich über die MenuItems eine Aktion ausführen. Wenn ich dies tue schließt das PopUp automatische()verschwindet). Wenn ich woanders hinklicke also sowas wie focusLost schließt dieses auch automatisch. Das letztere funktioniert nach dem Aufruf eines Dialogs nicht mehr

ok, dann versuch' ich es auch nochmal ;)
Was für ein Popup-Menü :confused:
Meinst Du ein Kontext-Menü**** Ist das eventuell selbst programmiert****
Poste mal die relevanten Codeteile ....

Gruß
Klaus
 
Code:
		final JPopupMenu popUp = this.tablePosition.getPopUpColumnHidder(new String[] {
				"Geändert von", "Änderungsdatum", "Erstellt von",
				"Erstelldatum" });
		this.tablePosition.getTableHeader().addMouseListener(
				new MouseAdapter() {
					@Override
					public void mouseClicked(MouseEvent e) {
						if (e.getButton() == 3)
							popUp.show(PanelBelegAllgemeinPositionen.this,
									e.getX(), e.getY());
					}
				});
this.tablePosition.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				if (tablePosition.getSelectedColumn() == tablePosition
						.getColumnModel().getColumnIndex("Notiz")) {
					int row = tablePosition
							.convertRowIndexToModel(tablePosition
									.getSelectedRow());
					int colPosNr = tmPosition.findColumn("Position");
					int colPosID = tmPosition.findColumn("BelegPositionID");
					Integer posNr = (Integer) tmPosition.getValueAt(row,
							colPosNr);
					String posID = (String) tmPosition
							.getValueAt(row, colPosID);
					try {
						JFrame cont = (JFrame) getRootPane().getParent();
						DialogBelegPosNotiz dialog = new DialogBelegPosNotiz(
								cont, "Positionsnotizen", posNr, null, posID,
								mysqlConnector);
						dialog.setMitarbeiterID(getMitarbeiterID());
						dialog.setEditierbar(getEditierbar());
						dialog.setVisible(true);
						mysqlConnector.openConnection();
						tmPosition.updateNotizValue(mysqlConnector, row);
					} catch (Exception e1) {
						try {
							mysqlConnector.closeConnection();
						} catch (SQLException e2) {
							e2.printStackTrace();
						}
						e1.printStackTrace();
					}
				}
			}
		});
 
Zurück