2011-11-20 111 views
1

对于那些有Java经验的人来说,这可能是一个非常简单的问题。这是我的代码,至今我写的错误以及我收到的错误。我相信我之前完成过类似的代码,没有任何错误。我很确定我错过了一些愚蠢的东西,但我无法弄清楚或在网上找到任何东西。 感谢:Java JPanel.add(...)无法正常工作..?

import javax.swing.*; 
import java.awt.*; 

public class MyFrame extends JFrame { 

    JPanel mainPanel = new JPanel(); 
    JButton editButton = new JButton("Edit"); 
    JPanel.add(editButton); 
} 
Syntax error on token(s), misplaced construct(s) - for the underlined '.' 
on the last line 
Syntax error on token "editButton", VariableDeclaratorId expected after this 
token - for the underlined parameter within the brackets on the last line. 

真的很感激,快速响应,如果对不起这很简单。 马特

回答

4

你试图使用它,仿佛它是一个静态方法 - 你希望编辑按钮添加到面板?你需要调用它mainPanel

mainPanel.add(editButton); 

但是,你不能这样做,在一个类声明 - 像这样的语句要在方法或构造函数。所以,你可能想:

import javax.swing.*; 
import java.awt.*; 

public class MyFrame extends JFrame {  
    JPanel mainPanel = new JPanel(); 
    JButton editButton = new JButton("Edit"); 

    public MyFrame() { 
     mainPanel.add(editButton); 
    } 
} 

或者可能把所有初始化到构造,并且也使最终的变量和私营:

import javax.swing.*; 
import java.awt.*; 

public class MyFrame extends JFrame {  
    private final JPanel mainPanel; 
    private final JButton editButton; 

    public MyFrame() { 
     mainPanel = new JPanel(); 
     editButton = new JButton("Edit"); 
     mainPanel.add(editButton); 
    } 
} 
+0

谢谢,我知道这是愚蠢的,这是因为我试图赶紧代码,我甚至输入我的问题,因为冲。我的意思是把mainPanel.add()也没有工作,但你已经回答了。谢谢。 –

2

如下使用它。

mainPanel.add(editButton); 

你必须把它通过它的对象,而不是与它与它的类名关联,因为它不是一个静态方法