[英]how to use jface/swt actions?
我正在使用jface / swt開發應用程序,並希望使用org.eclipse.jface.action.Action來實現menuItems,按鈕等。我在上下搜索一些說明如何使用動作的文檔或教程,但一直找不到。 有人介意為我提供教程,還是給我自己啟發?
提前致謝!
注意:這是一個Java應用程序,不是eclipse插件。
我在理解JFace中的菜單欄,事件和操作的工作方式時遇到了一些問題,從網上看到的有用信息很少。 我有點知道如何使用MenuManager。 我的問題是,如果操作不同,是否需要為10個菜單項創建10個不同的類。
您可以在此處學習源代碼。 查看關於Action和IContributionManager的第4章。 另請參閱第9章。
這是一個有效的示例JFace菜單程序。
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
public class TestApp extends ApplicationWindow {
public TestApp() {
super(null);
addMenuBar();
}
public Control createContents(Composite parent) {
getShell().setText("JFace menu demo");
getShell().setSize(800, 600);
return parent;
}
protected MenuManager createMenuManager() {
MenuManager mainMenu = new MenuManager();
MenuManager fileMenu = new MenuManager("File");
MenuManager helpMenu = new MenuManager("Help");
// File popup menu
fileMenu.add(new OpenFile());
fileMenu.add(new Exit(this));
// Help popup menu
helpMenu.add(new About());
mainMenu.add(fileMenu);
mainMenu.add(helpMenu);
return mainMenu;
}
public static void main(String[] args) {
TestApp win = new TestApp();
win.setBlockOnOpen(true);
win.open();
Display.getCurrent().dispose();
}
class OpenFile extends Action {
public OpenFile() {
super("&Open Filer@Ctrl+O", AS_PUSH_BUTTON);
}
public void run() {
}
}
class Exit extends Action {
ApplicationWindow win;
public Exit(ApplicationWindow aWin) {
super("E&xit@Alt+X", AS_PUSH_BUTTON);
this.win = aWin;
}
public void run() {
this.win.close();
}
}
class About extends Action {
public About() {
super("About", AS_PUSH_BUTTON);
}
public void run() {
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.