Hallo,
ich möchte erreichen, dass nach Anklicken eines Buttons ein Popup-Menü direkt darunter angezeigt wird. Ich habe dies auch schon hinbekommen:
und hier der Code:
Jetzt habe ich noch zwei weitere Buttons ("Standort" und "Kostenstelle") hinzugefügt, zwei neue JPopupMenu's erstellt und den gleichen Code (natürlich mit den neuen Buttons und PopupMenus) verwendet, doch da erscheint mein das Popup-Menü außerhalb des Fensters :bahnhof:
Nach habe noch eine andere Methode probiert um an die X- und Y-Position zu kommen, doch keine Variante führt zum Erfolg. Hier der Code:
Erstellt ist das Projekt in NetBeans 5.5.1 und das Formular wurde mit Mattise designed. Hier der Auszug der Button-Erstellung:
Vielleicht habt Ihr ja eine Lösung.
Gruß
Andreas
ich möchte erreichen, dass nach Anklicken eines Buttons ein Popup-Menü direkt darunter angezeigt wird. Ich habe dies auch schon hinbekommen:
und hier der Code:
Code:
popupHinzufuegen.show(btnDatenHinzufuegen,
btnDatenHinzufuegen.getX()-12,
btnDatenHinzufuegen.getY()+btnDatenHinzufuegen.getHeight());
Jetzt habe ich noch zwei weitere Buttons ("Standort" und "Kostenstelle") hinzugefügt, zwei neue JPopupMenu's erstellt und den gleichen Code (natürlich mit den neuen Buttons und PopupMenus) verwendet, doch da erscheint mein das Popup-Menü außerhalb des Fensters :bahnhof:
Nach habe noch eine andere Methode probiert um an die X- und Y-Position zu kommen, doch keine Variante führt zum Erfolg. Hier der Code:
Code:
private void btnKostenstelleActionPerformed(java.awt.event.ActionEvent evt) {
Point p = btnKostenstelle.getLocation();
Dimension d = btnKostenstelle.getSize();
System.out.println(p.x);
System.out.println(p.y);
popupKostenstelle.show(btnKostenstelle,p.x,p.y+d.height);
}
private void btnStandortActionPerformed(java.awt.event.ActionEvent evt) {
popupStandort.show(btnStandort,
btnStandort.getX()-12,
btnStandort.getY()+btnStandort.getHeight());
}
Erstellt ist das Projekt in NetBeans 5.5.1 und das Formular wurde mit Mattise designed. Hier der Auszug der Button-Erstellung:
Code:
btnStandort = new javax.swing.JButton();
btnKostenstelle = new javax.swing.JButton();
...
paneObenLayout.setVerticalGroup(
paneObenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(paneObenLayout.createSequentialGroup()
.addContainerGap()
.addGroup(paneObenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(edtBezeichnung, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(paneObenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel6)
.addComponent(edtStandort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnStandort))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(paneObenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel7)
.addComponent(edtKostenstelle, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnKostenstelle))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(paneObenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel8)
.addComponent(edtTelefon, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(20, Short.MAX_VALUE))
);
add(paneOben, java.awt.BorderLayout.NORTH);
Vielleicht habt Ihr ja eine Lösung.
Gruß
Andreas