2015-12-02 57 views
1

我的問題是關於在java中使用具有圖形用戶界面的接口類。java中的gui接口類?

現在我有有這樣的方法接口類:

public interface management 
{ 
    public void loginActionPerformed(java.awt.event.ActionEvent evt); 
} 

然後創建一個實現該接口,但這個類中寫入的GUI設計和有一個按鈕,將實施方法登錄一類

問題:按鈕方法是私人的,不能轉換爲公開,因爲iam使用拖放來進行設計。

如何解決這個問題或如何使用gui設計接口類?具有設計類的

代碼:

public class employee extends javax.swing.JFrame implements management 
{ 
private void loginActionPerformed(java.awt.event.ActionEvent evt) { 
    // implementation 
    } 
} 
+0

這是不是真的東西,可以是固定的:這種方法應該是'public'因爲一個整點接口是定義你的類可以做什麼,所以從接口實現的方法應該是「public」。我不清楚爲什麼你不能只將「private」這個詞改爲「public」。 –

+0

我正在使用netbeans 8.0.2編輯器...這個程序不允許修改器私有被更改爲公共,並且不知道原因。 – MHM

+0

我對IDE並不熟悉,但我想說的是,您需要找到一種方法將其更改爲'public',因爲'private'關鍵字會影響接口的用途。對不起,我不能幫助具體。 –

回答

1

Java doesn't allow private methods in interfaces

可能的解決方法解決方案是在接口和委託的實現中使用另一種方法名稱:

public class Employee extends javax.swing.JFrame implements Management 
{ 
    @Override 
    public void myLoginActionPerformed(java.awt.event.ActionEvent evt) { 
     loginActionPerformed(evt); 
    } 

    // @javax.annotation.Generated 
    private void loginActionPerformed(java.awt.event.ActionEvent evt) { 
     // implementation 
    } 
} 

public interface Management 
{ 
    void myLoginActionPerformed(java.awt.event.ActionEvent evt); 
} 
+0

一個很好的解決方案,先生,我欣賞它。但問題是私有方法是我在運行我的應用程序時應點擊的按鈕。所以私人方法的實施應該直接執行時點擊按鈕 – MHM

+0

隨着你張貼的元素我不明白爲什麼,也許你應該澄清你的問題 – 2015-12-02 17:57:34

+0

我提供了我的問題的全部細節......我寫的方法是一個應該點擊的按鈕...我也提供了詳細信息,並說使用圖形用戶界面的接口類...請再次審查 – MHM

0

終於讓我找到了我的問題的解決方案:

類似這樣的接口類:

public interface Management 
{ 
    public void login(Account a); // object from a class instead of gui frame. 
} 

類實現的接口:

public class Employee extends javax.swing.JFrame implements Management 
{ 
    private void loginActionPerformed(java.awt.event.ActionEvent evt) { 
    Account a = new Account(); 
    login(a); 
    // button method that should clicked on. 
    } 
} 

public void login(Account a) 
{ 
    // implementation of what button should do when clicked on. 
} 

特別感謝@RC :)