SWT -> POP_UP erscheint nicht.

redX

Erfahrenes Mitglied
Also ich möchte einfach mal beim rechtsklick ein POP UP anzeigen.

Ich habe eine Shell mit einem Tree. Ich möchte jetzt, dass man mit einem rechtsklick auf einen Tree ein Popup erscheint. Habe mal folgendes versucht, was jedoch nicht funktioniert. Es wird gar kein Popup angezeigt, also auch nicht wenn man (rechts)klick irgendwo im Fenster macht...

PHP:
    private void initComponents() {
        final Display display = new Display();
        shell = new Shell(display);
        shell.setText("File Browser");
        shell.setLayout(new FillLayout());

//Add tree

//Add menu bar 
 
        shell.setMenu(createEditPopup());
        shell.setSize(400, 400);
        shell.open();

        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }

        display.dispose();
    }

    private Menu createEditPopup() {
        final Menu p = new Menu(shell, SWT.POP_UP);
        final MenuItem cutItem = new MenuItem(p, SWT.PUSH);
        cutItem.setText("Cut");

        final MenuItem copyItem = new MenuItem(p, SWT.PUSH);
        copyItem.setText("Copy");

        final MenuItem pasteItem = new MenuItem(p, SWT.PUSH);
        pasteItem.setText("Paste");

        return p;
    }

Hat wer ne Idee?

MFG
X
 
Hallo!

Schau mal hier:
Java:
/**
 * 
 */
package de.tutorials;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;

/**
 * @author Tom
 * 
 */
public class SWTTreeWithPopupMenuExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Display display = new Display();
        Shell shell = new Shell(display);
        shell.setText("SWTTreeWithPopupMenuExample");

        shell.setLayout(new FillLayout());

        final Tree tree = new Tree(shell, SWT.SINGLE);
        TreeItem root = new TreeItem(tree, SWT.NONE);
        root.setText("root");
        TreeItem itemA = new TreeItem(root, SWT.NONE);
        itemA.setText("itemA");
        TreeItem itemB = new TreeItem(root, SWT.NONE);
        itemB.setText("itemB");
        TreeItem itemBA = new TreeItem(itemB, SWT.NONE);
        itemBA.setText("itemBA");
        TreeItem itemBB = new TreeItem(itemB, SWT.NONE);
        itemBB.setText("itemBB");
        TreeItem itemC = new TreeItem(root, SWT.NONE);
        itemC.setText("itemC");

        final Menu menu = new Menu(tree);
        tree.setMenu(menu);

        MenuItem menuItem = new MenuItem(menu, SWT.PUSH);
        menuItem.setText("Show info");
        menuItem.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                TreeItem selectedTreeItem = tree.getSelection()[0];
                System.out.println("Showing info for: "
                        + selectedTreeItem.getText());
            }
        });

        tree.addMouseListener(new MouseAdapter() {
            public void mouseUp(MouseEvent e) {
                if (e.button == 3) {
                    menu.setVisible(true);
                }
            }
        });

        shell.pack();
        shell.open();

        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
    }
}

Gruß Tom
 
Zurück