17. oktober 2006 - 12:41
Der er
3 kommentarer og 1 løsning
Java: JPopupMenu
Jeg har forsøgt at lave en menu ved højre-klik med musen. Men det ser ikke så godt ud ;) Nogen der kan hjælpe mig? import javax.swing.*; import javax.swing.border.*; import java.awt.*; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("Program med Statusbar"); JPanel pane = new JPanel(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable(false); JPopupMenu popupMenu = new JPopupMenu(); JMenuItem popUpMenu1 = new JMenuItem("test"); popupMenu.add(popUpMenu1); frame.add(popupMenu); frame.pack(); frame.setSize(300,300); frame.setVisible(true); } }
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
05. november 2006 - 02:26
#1
den her virker, håber den er som du vil have den:) import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; public class Main { JPopupMenu popupMenu; public Main() { JFrame frame = new JFrame("Program med Statusbar"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable(false); popupMenu = new JPopupMenu(); popupMenu.add(new JMenuItem("menu 1")); popupMenu.add(new JMenuItem("menu 2")); frame.addMouseListener(new PopupListener()); frame.pack(); frame.setSize(300, 300); frame.setVisible(true); } class PopupListener extends MouseAdapter { public void mousePressed(MouseEvent e) { showPopup(e); } public void mouseReleased(MouseEvent e) { showPopup(e); } private void showPopup(MouseEvent e) { if (e.isPopupTrigger()) { popupMenu.show(e.getComponent(), e.getX(), e.getY()); } } } }
05. november 2006 - 14:18
#2
tak for det :) Har man mulighed for at lave PopupListener som en inner-class, så man kan køre den i samme klasse? Altså hvor man skriver metoderne inde i frame.addMouseListener-metoden? Du må meget gerne smide et svar :)
05. november 2006 - 15:31
#3
Jeg tror det er dette du spørger efter ikke? :) import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; public class Main { JPopupMenu popupMenu; public Main() { JFrame frame = new JFrame("Program med Statusbar"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable(false); popupMenu = new JPopupMenu(); popupMenu.add(new JMenuItem("menu 1")); popupMenu.add(new JMenuItem("menu 2")); frame.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { showPopup(e); } public void mouseReleased(MouseEvent e) { showPopup(e); } private void showPopup(MouseEvent e) { if (e.isPopupTrigger()) { popupMenu.show(e.getComponent(), e.getX(), e.getY()); } } }); frame.pack(); frame.setSize(300, 300); frame.setVisible(true); } }
05. november 2006 - 15:41
#4
Ja, helt rigtigt ;) tak for hjælpen!
Kurser inden for grundlæggende programmering