网站的类型主要有天眼查企业查询入口
上一周算法题刷了10道,然后学习了一些鼠标按键知识,创建图形化界面的知识,菜单栏的知识,Math类的常用方法,Runtime,Object的成员方法,implements和extends.
鼠标按键和图形化界面的知识:
首先要创建一个界面和按钮(JButton),将按钮添加到界面上,在按钮上实现鼠标的功能:
1.创建界面,在类里继承JFrame(extends JFrame):(加上this是为了使当前调用的成员变量有唯一界面)
// 设置界面宽高this.setSize(770, 770);
// 设置界面标题this.setTitle("拼图单机版");
// 设置界面置顶this.setAlwaysOnTop(true);
// 设置界面居中this.setLocationRelativeTo(null);
// 设置关闭模式this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 取消默认的居中放置,只有取消了才会按照XY轴的形式添加组件this.setLayout(null);
// 显示界面,建议写在最后this.setVisible(true);
2.创建按钮(JButton):
// 创建一个按钮对象JButton jtb1 =new JButton("点我呀!");
// 再创建一个按钮对象JButton jtb2=new JButton("再点我呀!");
// 设置位置和宽高jtb1.setBounds(0,0,100,50);
// 设置位置和宽高jtb2.setBounds(200,0,100,50);
3.将按钮添加到图形界面中,同时我们要给按钮绑定鼠标事件:
// 把按钮添加到整个界面当中this.getContentPane().add(jtb1);this.getContentPane().add(jtb2);
// 给按钮绑定鼠标事件jtb1.addMouseListener(this);jtb2.addMouseListener(this);
接下来要继承鼠标监听的接口(implements MouseListene),会出现下面父类方法:
@Overridepublic void mouseClicked(MouseEvent e) {System.out.println("单击");}@Overridepublic void mousePressed(MouseEvent e) {System.out.println("按下不松");}@Overridepublic void mouseReleased(MouseEvent e) {System.out.println("松开");}@Overridepublic void mouseEntered(MouseEvent e) {System.out.println("划入");}@Overridepublic void mouseExited(MouseEvent e) {System.out.println("划出");}
当我们的鼠标在按钮上做出动作时,控制台会给我们提示相应的反应,我们可以在那些父类方法里面改写我们的程序,实现更多的操作.
菜单栏知识:
在做菜单栏前介绍一下组件:
这个是最外层的窗体:JFrame
这个是最上层的菜单:JMenuBar
这个里面没有字的部分可以放图片和文字,管理文字与图片的容器:JLabel
功能,关于我们是JMenu.重新登录,重新游戏,关闭游戏,公众号是JMenuItem.
1.首先创建整个菜单(JMenuBar)对象和两个选择对象(JMenu):
// 创建整个菜单对象JMenuBar jMenuBar = new JMenuBar();
// 创建菜单上面的两个选择对象(功能 关于我们)JMenu functionJMenu = new JMenu("功能");JMenu aboutJMenu = new JMenu("关于我们");
2.创建条目对象(JMenuItem):
// 创建选项下面的条目对象JMenuItem replayItem=new JMenuItem("重新游戏");JMenuItem reLoginItem=new JMenuItem("重新登录");JMenuItem closeItem=new JMenuItem("关闭游戏");JMenuItem accountItem=new JMenuItem("公众号");
3.将条目添加到选择对象中,选择对象加到菜单栏中,菜单栏添加到界面中:
// 将每一个选项下面的条目添加到选项当中functionJMenu.add(replayItem);functionJMenu.add(reLoginItem);functionJMenu.add(closeItem);aboutJMenu.add(accountItem);// 将菜单里面的两个选项添加到菜单当中jMenuBar.add(functionJMenu);jMenuBar.add(aboutJMenu);// 给整个界面设置菜单this.setJMenuBar(jMenuBar);
Math常用方法:
// 进一法,往数轴的正方形进一System.out.println(Math.ceil(12.34));//13.0System.out.println(Math.ceil(-12.34));//-12.0System.out.println("-------------------------");// 去尾法System.out.println(Math.floor(12.34));//12.0System.out.println(Math.floor(-12.33));//-13.0System.out.println("-------------------------");// 四舍五入System.out.println(Math.round(12.34));//12.0System.out.println(Math.round(12.54));//13.0System.out.println("-------------------------");// 获得最大值,最小值System.out.println(Math.max(-12,34));//34System.out.println(Math.min(12,34));//12
补充:
public static double sqrt(double a)//返回a的平方根
public stdtic double cbrt(double b)//返回b的立方根
Runtime:
// 获取Runtime的对象Runtime r1 = Runtime.getRuntime();Runtime r2 = Runtime.getRuntime();System.out.println(r1==r2);// exit停止虚拟机r1.exit(0);System.out.println("看看我执行了吗");//发现不运行直接退出了// 获取CPU的线程数System.out.println(Runtime.getRuntime().availableProcessors());// 总内存的大小,单位是byte字节System.out.println(Runtime.getRuntime().maxMemory());// 已经获取的总内存大小System.out.println(Runtime.getRuntime().totalMemory());// 剩余内存的大小System.out.println(Runtime.getRuntime().freeMemory());// 运行cmd命令
// shutdown:关机
// 加上参数才能运行
// -s:默认在1分钟之后关闭
// -s -t 指定时间:指定关键时间
// -a 取消关键操作
// -r 关机并重启Runtime.getRuntime().exec("notepad");//打开记事本Runtime.getRuntime().exec("shutdown -s -t 3600");//一个小时后自动关机Runtime.getRuntime().exec("shutdown -a");//取消关机
Object的成员方法:
// 1.toString 返回对象的字符串表示形式Object obj=new Object();String str1=obj.toString();System.out.println(str1);//java.lang.Object@b4c966a// 核心逻辑:
// 当我们打印一个对象的时候,底层会调用对象的toString方法,把对象变成字符串
// 然后再打印在控制台上,打印完毕换行处理System.out.println(obj);//java.lang.Object@b4c966a
toStrin方法的结论: 如果我们打印一个对象,想要看到属性值的话,那么就重写toString方法就可以了,在重写过程中,把对象的属性值进行比较
// public boolean equals(Object obj) 比较两个对象是否相等String s1=new String();String s2=new String();boolean result1=s1.equals(s2);System.out.println(result1);//true
结论: 1.如果没有重写equals方法,那么默认使用Object中的方法进行比较,比较的是地址值是否相等 2.一般来讲地址值对我们意义不大,所以我们会重写,重写之后比较的就是对象内部的属性值了
String s="abc";StringBuffer sb=new StringBuffer("abc");System.out.println(s.equals(sb));//false
// 因为equals方法是被s调用的,而s是字符串
// 所以equals要看String类中的
// 字符串中的equals方法,先判断参数是否为字符串
// 如果是字符串,再比较内部的属性
// 但是如果参数不是字符串,直接返回falseSystem.out.println(sb.equals(s));//false
// 因为equals方法是被sb调用的,而sb是stringBuilder
// 所以这里的equals方法要看stringBuilder中的equals方法
// 那么在stringBuilder当中,没有重写equals方法
// 使用的是object中的
// 在Object当中默认是使用==号比较两个对象的地址值
// 面这里的s和sb记录的地址值是不一样的,所以结果返回false
implements和extends:
1. extends(继承类):
用途:用于类继承另一个类(单继承),或者接口继承另一个接口(多继承).eg.extends JFrame
特点:一个类只能 extends一个父类(Java 是单继承). 一个接口可以 extends多个父接口(接口支持多继承).
2. implements(实现接口):
用途:用于类实现一个或多个接口。eg.implement KeyListener,ActionListener
特点:一个类可以 implements多个接口(弥补了单继承的不足). 实现接口的类必须重写接口中的所有抽象方法(除非该类是抽象类).