2011-03-01 43 views
0

我正在創建一個按鈕,點擊後會直接進入網站。但我的代碼有錯誤。該錯誤表示非靜態變量不能從靜態上下文中引用。爲什麼我被告知非靜態變量不能從靜態上下文中引用?

public static void main(String[] args) throws Exception { 
    JFrame frame = new JFrame("JLinkButton"); 
    frame.getContentPane().setLayout(new BorderLayout()); 
    frame.getContentPane().add("Center", new AnotherLinkButton("www.google.com")); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.pack(); 
    frame.setLocation(100, 100); 
    frame.setVisible(true); 
    } 
+2

始終發佈提供錯誤消息和完整消息的行。 – jzd 2011-03-01 14:13:46

+0

抱歉..有線:frame.getContentPane()。add(「Center」,new AnotherLinkBut​​ton(「www.google.com」)); – steph22 2011-03-01 14:28:24

回答

2

即代碼看起來細假設AnotherLinkButton正確定義。

你可能有這樣的代碼:

class Main { 
    class AnotherLinkButton { 
    } 
} 

要創建的AnotherLinkButton一個實例,你需要的Main一個實例。試試這個:

class Main { 
    static class AnotherLinkButton { 
    } 
} 

這使得AnotherLinkButton獨立的Main

+0

+1他可能用'class'而不是'static class'定義'AnotherLinkBut​​ton'。 – 2011-03-01 14:19:23

+0

@Aaron可能,但我認爲這會給出不同的錯誤信息。我猜想AnotherLinkBut​​ton有一個構造函數或其他真正導致問題的東西。 – jzd 2011-03-01 14:25:20

+0

如果該類是主類的內部類,則它將獲得一個非靜態字段,並引用主類 - 這在靜態上下文中不可用。因此錯誤。 – 2011-03-01 14:26:45

相關問題