java 报错cannot resolve symbol问题

连着好几天遇到这个问题,今天终于解决了。

我是最近开始学的,所以问题不是出在maven的配置问题上,还没用到这个插件。

比如 这样报错java 报错cannot resolve symbol问题_第1张图片

刚刚找到了我的问题,是包的路径引用不全,如上图中我注释掉的那一行,加上import static java.awt.BorderLayout.*;就可以了

java 报错cannot resolve symbol问题_第2张图片

我没搞懂为什么要加static 然后查了一下:

import static(静态导入)是JDK1.5中的新特性,一般我们导入一个类都用 import com.....ClassName;而静态导入是这样:import static com.....ClassName.*;这里多了个static,还有就是类名ClassName后面多了个 .* ,意思是导入这个类里的静态方法。当然,也可以只导入某个静态方法,只要把 .* 换成静态方法名就行了。然后在这个类中,就可以直接用方法名调用静态方法,而不必用ClassName.方法名的方式来调用。

大概理解一下,就是说,如果你在该部分没有定义 ,比如f.setLayout(new BorderLayout),那么就可以用static方式直接用他的东西。

然后我是这样写的:

java 报错cannot resolve symbol问题_第3张图片

然后就报错了。。。

好像只能import static ...  了  。我中间定义的f.setLayout(new BorderLayout(300,200));对图形界面没有影响。可能是因为我加了一句f.pack().

然后界面一直是这样的:

java 报错cannot resolve symbol问题_第4张图片

这个问题我现在还很迷,再想想。。不行去问老师了。。

我用的这本书上的源代码说:默认Frame使用BorderLayout布局管理器,但是我把源代码抄过来会报错,然后就是上面的问题。我把代码给大家复制一下:

package test1;
import javax.swing.JButton;
import java.awt.*;
import static java.awt.BorderLayout.NORTH;//这里书上没有,所以我报错了
public class jisuanqi {

        public static void main(String[] args){
            //建立新窗体对象
            Frame f = new Frame("计算器");
            //f.setLayout(new BorderLayout(500,200));//书上没有这句
            Panel p1 = new Panel();
            p1.add(new TextField(30));
            p1.add(new JButton("求和"));
            f.add(p1,NORTH);
            Panel p2 = new Panel();
            //设置Panel使用GridLayout布局管理器
            p2.setLayout(new GridLayout(3,5,4,4));
            String[] name = {"0","1","2","3","4","5","6","7","8","9","+","-","*","/","."};
            for (int i=0;i

 

你可能感兴趣的:(Java)