hallo
habe folgendes problem...
habe eine tabelle und per rechtsklick öffnet sich ein popupmenü.
nun soll, wenn ich im menü auf einen eintrage klicke, etwas passieren (text ausgegeben werden oder später dann ne funktion aufgerufen werden...)
mein problem ist nun, dass das in der theorie ja ganz nett ist, bei mir aber nicht will!
hier mal ein kleines lauffähiges programm als beispiel
kann mir jemand sagen, warum das nicht geht?
vielen dank im voraus
lumo, der sich gerade vorkommt wie ein 0-τ-user
habe folgendes problem...
habe eine tabelle und per rechtsklick öffnet sich ein popupmenü.
nun soll, wenn ich im menü auf einen eintrage klicke, etwas passieren (text ausgegeben werden oder später dann ne funktion aufgerufen werden...)
mein problem ist nun, dass das in der theorie ja ganz nett ist, bei mir aber nicht will!
hier mal ein kleines lauffähiges programm als beispiel
Java:
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MenuAdapter;
import org.eclipse.swt.events.MenuEvent;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
public class MyTableMenuTest {
public static void main(String[] args) {
Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
final Table resultTable = new Table(shell, SWT.FULL_SELECTION);
resultTable.setLinesVisible(true);
for (int i = 0; i < 10; i++) {
TableItem item = new TableItem(resultTable, SWT.NONE);
item.setText("item " + i);
}
final Menu menu = new Menu(resultTable);
resultTable.setMenu(menu);
menu.addMenuListener(new MenuAdapter() {
public void menuShown(MenuEvent e) {
final int index = resultTable.getSelectionIndex();
if (index == -1)
return;
MenuItem openItem = new MenuItem(menu, SWT.PUSH);
openItem.setText("Close Shell");
openItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e)
{
System.out.println("Item Selected");
shell.close();
}});
openItem.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
System.out.println("widgetDefaultSelected");
shell.close();
}
public void widgetSelected(SelectionEvent e) {
System.out.println("widgetSelected");
shell.close();
}
});
}
public void menuHidden(MenuEvent e) {
MenuItem[] items = menu.getItems();
for (int i = 0; i < items.length; i++) {
items[i].dispose();
}
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
kann mir jemand sagen, warum das nicht geht?
vielen dank im voraus
lumo, der sich gerade vorkommt wie ein 0-τ-user
Zuletzt bearbeitet: