m0_46634941
2020-09-04 23:42
采纳率: 100%
浏览 166
已采纳

import static javax.swing.JFrame.*;在eclipse里左边有黄色感叹号,这是为啥?

求助,照着书上打的代码,但运行结果不一样,很多没没显示出来,代码里import static javax.swing.JFrame.*;左边有感叹号,这些都是为啥呀

图片说明图片说明

public class Example9_2 {
public static void main(String args[]) {
WindowMenu win = new WindowMenu("带菜单的窗口",20,30,200,190);
}
}

import javax.swing.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import static javax.swing.JFrame.*;
public class WindowMenu extends JFrame {
    JMenuBar menubar;
    JMenu menu,subMenu;
    JMenuItem item1,item2;
    public WindowMenu() {}
    public WindowMenu(String s,int x,int y,int w,int h) {
        init(s);
        setLocation(x,y);
        setVisible(true);
        setSize(w,h);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    }
    void init(String s) {
        setTitle(s);
        menubar = new JMenuBar();
        menu = new JMenu("菜单");
        subMenu = new JMenu("软件项目");
        item1 = new JMenuItem("Java话题",new ImageIcon("1.jpg"));
        item2 = new JMenuItem("动画话题",new ImageIcon("2.jpg"));
        item1.setAccelerator(KeyStroke.getKeyStroke('A'));
        item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
        menu.add(item1);
        menu.addSeparator();
        menu.add(item2);
        menu.add(subMenu);
        subMenu.add(new JMenuItem("汽车销售系统",new ImageIcon("3.jpg")));
        subMenu.add(new JMenuItem("农场信息系统",new ImageIcon("4.jpg")));
        menubar.add(menu);
        setJMenuBar(menubar);
    }
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • wifiaaa 2020-09-05 02:06
    已采纳

    您好,首先第一个黄色的标志,您把鼠标放在上面有错误提示,大致是这种The import javax.swing.JFrame is never used。意思是说你导入的
    javax.swing.JFrame 包没有使用,也就是多余的,也就是说不import程序也可以正常运行。
    第二个黄色的标志,The serializable class WindowMenu does not declare a static final serialVersionUID field of type long,这个是警告
    信息,意思是说WindowMenu这个类没有声明一个静态最终的成员变量用于序列化,简而言之,就是编译器希望你多写这样一句话
    private static final long serialVersionUID = 1L; 这行语句的意思是创建了一个serialVersionUID变量用于序列化。序列化的意思是:一个类
    想要在网络上或其他地方进行传输,那么这个类必须能够以二进制的形式表示,并能将二进制转化为类,而序列化就是做这个的。通俗来说,
    一个类想要以比特位的方式进行传输,那么它就必须实现序列化,当然你不定义那个变量也可以实现序列化,不定义编译器应该会分配一个默认值的。

    点赞 打赏 评论
  • cometoday 2020-09-05 08:14

    感叹号代表你导入的包在代码里没有体现

    点赞 打赏 评论

相关推荐 更多相似问题