美文网首页
java近期笔记整理

java近期笔记整理

作者: 萍水间人 | 来源:发表于2019-06-24 19:23 被阅读0次

0x01 图形界面的设计

java有swing包,可以很方便地设计图形界面
各种组件可以new出来,然后将其添加进container中
每一个组件可以加监视器

比如实现的这个:

共3个按钮,每点击一个按钮就会弹出一个消息

具体实现如下:

package javaStudyDemo.swingDemo;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingControlDemo {
    private JFrame mainFrame;
    private JLabel headerLabel;
    private JLabel statusLabel;
    private JPanel controlPanel;
    public SwingControlDemo(){
            prepareGUI();
        }
        public static void main(String[] args){
            SwingControlDemo swingControlDemo = new SwingControlDemo();
            swingControlDemo.showEventDemo();
        }
        private void prepareGUI(){
            mainFrame = new JFrame("Java SWING Examples");
        mainFrame.setSize(400,400);
        mainFrame.setLayout(new GridLayout(3, 1));
        headerLabel = new JLabel("",JLabel.CENTER );
        statusLabel = new JLabel("",JLabel.CENTER);
        statusLabel.setSize(350,100);
        mainFrame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent windowEvent){
                System.exit(0);
            }
        });
        controlPanel = new JPanel();
        controlPanel.setLayout(new FlowLayout());
        mainFrame.add(headerLabel);
        mainFrame.add(controlPanel);
        mainFrame.add(statusLabel);
        mainFrame.setVisible(true);
    }
    private void showEventDemo(){
        headerLabel.setText("Control in action: Button");
        JButton okButton = new JButton("OK");
        JButton submitButton = new JButton("Submit");
        JButton cancelButton = new JButton("Cancel");
        okButton.setActionCommand("OK");
        submitButton.setActionCommand("Submit");
        cancelButton.setActionCommand("Cancel");
        okButton.addActionListener(new ButtonClickListener());
        submitButton.addActionListener(new ButtonClickListener());
        cancelButton.addActionListener(new ButtonClickListener());
        controlPanel.add(okButton);
        controlPanel.add(submitButton);
        controlPanel.add(cancelButton);
        mainFrame.setVisible(true);
    }
    private class ButtonClickListener implements ActionListener{
        public void actionPerformed(ActionEvent e) {
            String command = e.getActionCommand();
            if( command.equals( "OK" ))  {
                statusLabel.setText("Ok Button clicked.");
            }
            else if( command.equals( "Submit" ) )  {
                statusLabel.setText("Submit Button clicked.");
            }
            else  {
                statusLabel.setText("Cancel Button clicked.");
            }
        }
    }
}

0x02 java IO

java IO大体分为字节流和字符流

InputStreamReader和OutputStreamWriter是转换流,前者将字节转化为字符,后者将字符转化为字节(这两个类其实更多的是起到一个桥梁的作用,进行编码的转换)

BufferedReader和BufferedWriter是字符缓冲区

BufferedImage图片的缓冲区
BufferedImage简单示例:
先用FileInputStream打开流,

String imgPath = "C://demo.jpg";  
BufferedImage image = ImageIO.read(new FileInputStream(imgPath));  

FileReader和FileWriter读取文本中的字符,是一个快捷类

字节流的类都继承于InputStream和OutputStream
字符流的类都继承于Reader和Writer

0x03 java 序列化与反序列化

Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。
将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。
整个过程都是 Java 虚拟机(JVM)独立的,也就是说,在一个平台上序列化的对象可以在另一个完全不同的平台上反序列化该对象。

怎么理解序列化和反序列化呢
打个比方,比如A要见B,但是A和B相隔很远无法到达,A只好委托一个人将B的信息(比如身高啦,眼睛啦,各种相貌特征)传送过来,然后自己画出或者想象出B的样子,这就是一次数据传输的过程,也就是一次序列化和反序列化的过程。

0x04 java 在线反编译环境

经常间歇性忘记jar包要怎么反编译,这里有一个在线的反编译环境
在线环境

0x05 java调用摄像头

可以直接用GitHub上的一个包
地址

0x06 什么是java包管理工具?

java包管理工具,主要有Maven和Gradle,之前一直没有明白java的包管理工具的用处是什么,后来亲自导入外部的包才意识到,原来java的包管理工具也就相当于python的pip命令了。

0x07 java管理注册表

有一个已经打包好的工具:
JRegistry

0x08 java robot

这个没有做过多的了解,顾名思义就是一个机器人,可以实现自动化的一些操作。

0x09 java OpenCv学习

第一个OpenCv的demo


但是当用OpenCv去打开摄像头的时候出错,问题还没解决

相关文章

  • java近期笔记整理

    0x01 图形界面的设计 java有swing包,可以很方便地设计图形界面各种组件可以new出来,然后将其添加进c...

  • 静待

    此刻坐在自习室的我好困=_= 整理近期落下的笔记,准备迎接新的开始 笔记刚整理没多少就开始犯困,然后开始看近期读的...

  • JAVA学习笔记

    JAVA学习笔记,整理中,完成后上传

  • 本系列Java笔记,以廖先生Java教程为学习源,暂未整理,仅做记录之用。

  • Java笔记整理...

    Java一、类加载过程Person person = new Person();1)new的时候用到了Person...

  • 机器学习:数学基础(概率论与数理统计)

    前言近期在自学机器学习,把笔记做个整理,以方便查阅和整理知识框架。喜欢探讨机器学习或者Android开发技术的同学...

  • 机器学习:数学基础(线性代数篇)

    前言近期在自学机器学习,把笔记做个整理,以方便查阅和整理知识框架。喜欢探讨机器学习或者Android开发技术的同学...

  • JAVA笔记整理2

    42 函数的定义 函数就是方法一个小程序(特定功能),函数就是方法 修饰符 返回值类型 函数名(参数类型 形式参数...

  • JAVA笔记整理1

    由于现在测试对代码要求越来越高,自己看网上流行的毕向东的java基础视频,做了点笔记,方便自己日后查看,个人推存菜...

  • JAVA笔记整理3

    以下是数组的常用几个案例 50 获取最大值 public static int getMax(int[] arr)...

网友评论

      本文标题:java近期笔记整理

      本文链接:https://www.haomeiwen.com/subject/qsfaqctx.html