2014-03-01 11 views
0

在Codename One項目中,說我在NetBeans上創建的項目「PRJ1」, 我定義了一個我不應該作爲Action事件的文件。代碼名單動作事件

具體而言,在設計界面編輯「theme.res」 (我使用的是最新版本的NetBeans &代號之一),我右鍵單擊 一個按鈕,然後在下拉菜單事件 - > Action event,輸入 一個.jar文件。

於是乎,我得到的錯誤:

Error opening Netbeans.java.IOException: Cannot run program "..\MyApp.jar" CreateProcess error=193, %1 is not a valid Win32 application 

每當我接近事件的任何地方。

我刪除PRJ1創造從頭PRJ2。 當我試圖定義一個動作事件 再次以同樣的方式,我結束了在彈出窗口中同樣的錯誤之後,我點擊Action事件或事件中的任何其他一個。當我在一個新項目上定義一個新組件時,我有同樣的東西 。 「MyApp.jar」好像已經粘貼在我的Codename One上了。我無法擺脫它。

我的問題是:

我怎麼能在源代碼單獨定義操作,而無需使用設計器界面?

當我通過使用設計器界面 來定義動作事件時,它如何進入代碼?我看到在StateMachine.java中添加的方法。 從我看到,那就是一切儘可能的源代碼去。 .xml或其他配置文件中是否有其他更改?我手動搜索項目目錄中的文件。任何地方都沒有MyApp.jar的痕跡。

在此先感謝。

我是新來的代號之一。這可能是一個簡單的問題,但我的時間消耗了很多。

回答

1

您需要啓動設計器,單擊File-> Setup NetBeans並從NetBeans bin目錄中選擇netbeans.exe/.app.sh文件,以便設計人員可以觸發NetBeans。

您可以在嚮導(底部的第二個選項)中創建一個手寫代碼的應用程序,其中設計器僅用於主題而不是GUI。您可以處理事件,就像你在Swing/AWT addActionListner等做任何組件。

+0

當我第一次創建項目&運行它,我得到一個運行時錯誤:「異常在線程」AWT-EventQueue-0「java.lang.N ullPointerException ......「。堆棧跟蹤很大。這應該發生嗎?我沒有改變任何代碼或設計師。所有在模擬器中運行良好。 – Roam

+0

你可以發佈完整的堆棧作爲一個單獨的問題或在討論論壇http://www.codenameone.com/discussion-forum.html我想看到這一點。 –

+0

我已經發布它在http://stackoverflow.com/questions/22161346/codename-one-project-runtime-error – Roam

1

我有同樣的問題。我認爲這發生在你改變安裝的默認目錄時(我一直都在做)

首先你應該重置你的設置。在GUI編輯器中,轉至'codename one' - >高級 - >重置netbean設置。

下次獲得文件對話框時,找到並選擇netbeans.exe(或netbeans64.exe)。

要回答關於如何避免使用GUI編輯器的具體問題,您可以在StateMachine.java文件中手動添加事件處理程序代碼。像這樣:

@Override 
    protected void onMain_Button1Action(Component c, ActionEvent event) { 
     //do stuff   
    } 

只需使用您的按鈕或組件的名稱而不是Button1。

0

正確的方法來定義使用代碼的動作事件是像這樣:

Button btn = findMyButton(form); 
btn.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent evt) { 
      // do something 
     } 
}); 

要定義代碼的按鈕,以及:

如果按鈕是在GUI生成器定義:

Button btn = new Button('my button'); 
btn.addActionListener(new ActionListener() { 
    ...as above 
});