Avatar billede rickie Juniormester
13. marts 2001 - 16:37 Der er 3 kommentarer og
1 løsning

Menyer som viser undermenyer (mouse over)

Hej!

Jeg vil gerne have nogle menyer som viser nogle undermenyer når man förer musen over.
Menyerne skal gå over teksten som er nedenunder. Teksten nedenunder skal altså ikke påvirkes av menyerne (menyerne skal gå over teksten)
Avatar billede blood Nybegynder
13. marts 2001 - 16:38 #1
Forkert kategori!
Dette er (Programmering: Java) og du skal over i (Programmering: JavaScript)
Avatar billede phylox2 Nybegynder
27. marts 2001 - 23:16 #2
Du får lige denne PopupMenuDemo at se på - den forklarer en del vedr. menuBar (og så gad jeg ikke skrive det hele selv) ;o)

import java.awt.*;
import java.awt.event.*;
import javax.swing.JPopupMenu;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.ButtonGroup;
import javax.swing.JMenuBar;
import javax.swing.KeyStroke;
import javax.swing.ImageIcon;

import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JFrame;

/*
* This class adds popup menus to MenuDemo.
*/
public class PopupMenuDemo extends JFrame
                          implements ActionListener, ItemListener {
    JTextArea output;
    JScrollPane scrollPane;
    String newline = \"\\n\";
    JPopupMenu popup;

    public PopupMenuDemo() {
        JMenuBar menuBar;
        JMenu menu, submenu;
        JMenuItem menuItem;
        JRadioButtonMenuItem rbMenuItem;
        JCheckBoxMenuItem cbMenuItem;

        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        //Add regular components to the window, using the default BorderLayout.
        Container contentPane = getContentPane();
        output = new JTextArea(5, 30);
        output.setEditable(false);
        scrollPane = new JScrollPane(output);
        contentPane.add(scrollPane, BorderLayout.CENTER);

        //Create the menu bar.
        menuBar = new JMenuBar();
        setJMenuBar(menuBar);

        //Build the first menu.
        menu = new JMenu(\"A Menu\");
        menu.setMnemonic(KeyEvent.VK_A);
        menu.getAccessibleContext().setAccessibleDescription(
                \"The only menu in this program that has menu items\");
        menuBar.add(menu);

        //a group of JMenuItems
        menuItem = new JMenuItem(\"A text-only menu item\",
                                KeyEvent.VK_T);
        //menuItem.setMnemonic(KeyEvent.VK_T); //used constructor instead
        menuItem.setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_1, ActionEvent.ALT_MASK));
        menuItem.getAccessibleContext().setAccessibleDescription(
                \"This doesn\'t really do anything\");
        menuItem.addActionListener(this);
        menu.add(menuItem);
        menuItem = new JMenuItem(\"Both text and icon\",
                                new ImageIcon(\"images/middle.gif\"));
        menuItem.setMnemonic(KeyEvent.VK_B);
        menuItem.addActionListener(this);
        menu.add(menuItem);
        menuItem = new JMenuItem(new ImageIcon(\"images/middle.gif\"));
        menuItem.setMnemonic(KeyEvent.VK_D);
        menuItem.addActionListener(this);
        menu.add(menuItem);

        //a group of radio button menu items
        menu.addSeparator();
        ButtonGroup group = new ButtonGroup();
        rbMenuItem = new JRadioButtonMenuItem(\"A radio button menu item\");
        rbMenuItem.setSelected(true);
        rbMenuItem.setMnemonic(KeyEvent.VK_R);
        group.add(rbMenuItem);
        rbMenuItem.addActionListener(this);
        menu.add(rbMenuItem);
        rbMenuItem = new JRadioButtonMenuItem(\"Another one\");
        rbMenuItem.setMnemonic(KeyEvent.VK_O);
        group.add(rbMenuItem);
        rbMenuItem.addActionListener(this);
        menu.add(rbMenuItem);

        //a group of check box menu items
        menu.addSeparator();
        cbMenuItem = new JCheckBoxMenuItem(\"A check box menu item\");
        cbMenuItem.setMnemonic(KeyEvent.VK_C);
        cbMenuItem.addItemListener(this);
        menu.add(cbMenuItem);
        cbMenuItem = new JCheckBoxMenuItem(\"Another one\");
        cbMenuItem.setMnemonic(KeyEvent.VK_H);
        cbMenuItem.addItemListener(this);
        menu.add(cbMenuItem);

        //a submenu
        menu.addSeparator();
        submenu = new JMenu(\"A submenu\");
        submenu.setMnemonic(KeyEvent.VK_S);

        menuItem = new JMenuItem(\"An item in the submenu\");
        menuItem.setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_2, ActionEvent.ALT_MASK));
        menuItem.addActionListener(this);
        submenu.add(menuItem);

        menuItem = new JMenuItem(\"Another item\");
        menuItem.addActionListener(this);
        submenu.add(menuItem);
        menu.add(submenu);

        //Build second menu in the menu bar.
        menu = new JMenu(\"Another Menu\");
        menu.setMnemonic(KeyEvent.VK_N);
        menu.getAccessibleContext().setAccessibleDescription(
                \"This menu does nothing\");
        menuBar.add(menu);

        //Create the popup menu.
        popup = new JPopupMenu();
        menuItem = new JMenuItem(\"A popup menu item\");
        menuItem.addActionListener(this);
        popup.add(menuItem);
        menuItem = new JMenuItem(\"Another popup menu item\");
        menuItem.addActionListener(this);
        popup.add(menuItem);

        //Add listener to components that can bring up popup menus.
        MouseListener popupListener = new PopupListener();
        output.addMouseListener(popupListener);
        scrollPane.addMouseListener(popupListener);
        menuBar.addMouseListener(popupListener);
    }

    public void actionPerformed(ActionEvent e) {
        JMenuItem source = (JMenuItem)(e.getSource());
        String s = \"Action event detected.\"
                  + newline
                  + \"    Event source: \" + source.getText()
                  + \" (an instance of \" + getClassName(source) + \")\";
        output.append(s + newline);
    }

    public void itemStateChanged(ItemEvent e) {
        JMenuItem source = (JMenuItem)(e.getSource());
        String s = \"Item event detected.\"
                  + newline
                  + \"    Event source: \" + source.getText()
                  + \" (an instance of \" + getClassName(source) + \")\"
                  + newline
                  + \"    New state: \"
                  + ((e.getStateChange() == ItemEvent.SELECTED) ?
                    \"selected\":\"unselected\");
        output.append(s + newline);
    }

    // Returns just the class name -- no package info.
    protected String getClassName(Object o) {
        String classString = o.getClass().getName();
        int dotIndex = classString.lastIndexOf(\".\");
        return classString.substring(dotIndex+1);
    }

    public static void main(String[] args) {
        PopupMenuDemo window = new PopupMenuDemo();

        window.setTitle(\"PopupMenuDemo\");
        window.setSize(450, 260);
        window.setVisible(true);
    }

    class PopupListener extends MouseAdapter {
        public void mousePressed(MouseEvent e) {
            maybeShowPopup(e);
        }

        public void mouseReleased(MouseEvent e) {
            maybeShowPopup(e);
        }

        private void maybeShowPopup(MouseEvent e) {
            if (e.isPopupTrigger()) {
                popup.show(e.getComponent(),
                          e.getX(), e.getY());
            }
        }
    }
}

God fornøjelse!
Avatar billede phylox2 Nybegynder
03. april 2001 - 23:13 #3
Hvad så - er det noget du kan bruge?
Avatar billede rickie Juniormester
27. april 2001 - 08:11 #4
Ja tak! Der er lige et par ting som skal ändres, men det kan jeg nok få hjälp med....Tak for det!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

KMD A/S

E2E Tester

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Teknisk systemansvarlig / ingeniør inden for taktisk datalink

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Afdelingschef til GDPR & Tech Regulation