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

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变量用于序列化。序列化的意思是:一个类
    想要在网络上或其他地方进行传输,那么这个类必须能够以二进制的形式表示,并能将二进制转化为类,而序列化就是做这个的。通俗来说,
    一个类想要以比特位的方式进行传输,那么它就必须实现序列化,当然你不定义那个变量也可以实现序列化,不定义编译器应该会分配一个默认值的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号