为什么netbeans将swing组件的对象视为包

时间:2014-01-15 10:50:04

标签: java swing netbeans

我正在尝试使用JTextField和JButton等一些组件创建一个简单的JFrame 以下代码未显示任何错误,

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

public class Commform 
{
    static final JFrame common = new JFrame();
    JTextField Farmername = new JTextField();
    Commform()
    {
        common.getContentPane().setLayout(null);  
        Farmername.setBounds(100, 100, 285, 100);      
    }

}

但是,在声明JFrame(common)和JTextField(Farmername)的对象之后,如果我尝试在构造函数之前使用setBounds方法,比如粗体线,

public class Commform 
{
    static final JFrame common = new JFrame();
    JTextField Farmername = new JTextField();

    Farmername.setBounds(100, 100, 285, 100);

    Commform()
    {
        common.getContentPane().setLayout(null);    

    }
}

然后netbeans以红色下划线并将工具提示显示为“包Farmername不存在,非法启动或表达” 当我能够在构造函数中使用object时,为什么我不能在创建对象后立即使用它?

即使在静态内部使用Farmername,如下所示也不会出现任何错误。

static
    {        
        System.out.println("Called from main function");
        common.getContentPane().setLayout(null);
        Farmername.setBounds(100, 100, 285, 100);
    }

我在没有main函数的类中创建这个表单,因为我想调用这个框架并输入凭据将它们插入到数据库中,稍后在各自的文本字段中显示特定人员的凭据,我想称之为相同帧。但在任何级别我都不想在这个类中使用main函数。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

Farmername.setBounds(100, 100, 285, 100);

需要在块内,无论是方法还是构造函数。每当您尝试通过方法调用对属性的更改时,它都不会出现在代码的数据字段区域中。它需要一个块。