G
Gast
Gast
Ich will einen normalen Button nutzen, der irgendwo im Frame ist, um ein Popup-Menu zu öffnen, und zwar dann, wenn man mit der Maus drüberfährt. Wenn die Maus den Button verlässt, soll auch das Popup-Menu verschwinden, aber natürlich nicht, wenn ich versuche, auf das Popup-Menu zu gelangen. Folgender Quelltext als Grundlage:
Code:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class ButtonAlsMenu extends Frame {
ButtonAlsMenu() {
super("Button Example");
JButton standardButton=new JButton();
standardButton.setText("Beispieltext");
standardButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
// showGenL01ToolLayer("02");
}
});
standardButton.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
}
});
standardButton.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e){
}
});
//der Menuteil
final JPopupMenu popupMenuDesButton=new JPopupMenu();
JMenuItem menu1=new JMenuItem( "Eintrag 1");
popupMenuDesButton.add(menu1);
popupMenuDesButton.add(new JMenuItem("Eintrag 2"));
popupMenuDesButton.addMouseListener(new MouseAdapter(){
public void mouseEntered(MouseEvent me){
popupMenuDesButton.setVisible(true);
}
public void mouseExited(MouseEvent me){
popupMenuDesButton.setVisible(false);
}
});
standardButton.addMouseListener(new MouseAdapter(){
public void mouseEntered(MouseEvent me){
popupMenuDesButton.show(me.getComponent(),0,me.getComponent().getHeight());
}
public void mouseExited(MouseEvent me){
popupMenuDesButton.setVisible(false);
}
});
add(standardButton);
this.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
pack();
show();
}
static public void main(String[] args) {
new ButtonAlsMenu();
}
}