求助,照着书上打的代码,但运行结果不一样,很多没没显示出来,代码里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);
}
}
您好,首先第一个黄色的标志,您把鼠标放在上面有错误提示,大致是这种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变量用于序列化。序列化的意思是:一个类
想要在网络上或其他地方进行传输,那么这个类必须能够以二进制的形式表示,并能将二进制转化为类,而序列化就是做这个的。通俗来说,
一个类想要以比特位的方式进行传输,那么它就必须实现序列化,当然你不定义那个变量也可以实现序列化,不定义编译器应该会分配一个默认值的。
感叹号代表你导入的包在代码里没有体现