我正在尝试使用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函数。
请帮帮我。
答案 0 :(得分:0)
此
Farmername.setBounds(100, 100, 285, 100);
需要在块内,无论是方法还是构造函数。每当您尝试通过方法调用对属性的更改时,它都不会出现在代码的数据字段区域中。它需要一个块。