求帮忙解释下这个JAVA程序哪一部分是干什么的,最好详细点

求帮忙解释下这个JAVA程序哪一部分是干什么的,最好详细点,第1张

import javaawt;

import javaawtevent;

import javaio;

import javaxswing;

/

  这段程序可以对文本类型的文件通过对单个char字符类型的值的增加和减少进行加密和解密。

  是用awt和swing GUI图形用户界面完成的小程序。

  AWT(Abstract Window Toolkit),中文译为抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。

  AWT由Java中的javaawt包提供,里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类,这些类又被称为组件(components)。

  

  Swing(AWT的子类)是一个用于开发Java应用程序用户界面的开发工具包。

  以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。

  Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。

  

  java图形界面在你毕业以后基本上是用不到的,因为做客户端程序有c++,c,c#等这些都比swing高效,

  建议你从swing转android,做手机软件,android的后台端跟swing很类似,你可以认为android是java的swing

  在手机端的重生。如果你想从事java开发这个行业,android>javaee,记住我说的话,以后你会明白。

  @author Administrator

  

 /

public class code {

Frame f;//定义一个awt的frame(框架),更多我们用的swing的JFrame

JPanel p1, p2;//定义一个面板,你之前用的awt的小组件,我都改成swing了,awt的在某些电脑上可能存在中文乱码的问题,所以给你调整了。

JLabel l1, l2;//这个是标签,就是一个小东东,上面写着一些字,比如:请输入名字。

JButton key, unkey, scan;//定义按钮,按钮是啥知道不,点一下,原子d就爆炸了,不要乱点噢。

JTextField t1, t2;//这个是一个只有一行的文本框,常见的是输入名字和密码

JTextArea ta;//定义一个多行的文本框,常见的是输入回复,或者水贴,比如水帝真经、卖房兽这些多行的文本。

String path;//这个不说了,String字符串,定义路径,用来定位文件。

String FileName;//文件名字,不知道文件名字怎么能找到文件,你是福尔摩斯吗,所以必须要有这个东东,文件名字,后面会用到。

public code() {

// 设置系统风格 这个是我给你单独加上的,设置跟随系统的风格,你电脑是apple就是apple的风格,windows就是windows的风格,而非原java风格。

try {

UIManagersetLookAndFeel(UIManagergetSystemLookAndFeelClassName());

} catch (Exception e) {

eprintStackTrace();//如果风格定义失败了,会抛出异常。因为setLookAndFeel这个方法直接throws new Exception,所以我们必须写一个try catch以防万一。

}

f = new Frame("文件加密");//这个就是实例化对象喽,一个对象实例化,就是给他分配一块内存空间,这样他才能被使用

fsetLayout(new BorderLayout());//这个是设置布局管理器,是定义布局的,BorderLayout(): 构造一个组件之间没有间距(默认间距为0像素)的新边框布局。

p1 = new JPanel();//对象实例化,这个面板的定义在上面声明这个变量的时候都已经加了注释了,我就不赘述了。

p2 = new JPanel();//其实对象实例化就好像你大学毕业了,户口要落户,你要买房子,你要买车子,你要娶媳妇,不然你咋有脸生活?

l1 = new JLabel("选择路径");

scan = new JButton("浏览");

l2 = new JLabel("密钥");

key = new JButton("加密");

unkey = new JButton("解密");

t1 = new JTextField(30);//定义字符串的长度是30的文本框

t2 = new JTextField(20);

ta = new JTextArea();

p1add(l1);//把li这个标签加到p1这个面板上

p1add(t1);//把t1这个文本框加到p1这个面板上

p1add(scan);//把scan这个按钮加到p1这个面板上

fadd(p1, BorderLayoutNORTH);//把p1这个面板放到frame框架的上方,north 北面,按照上北下南的国际约定,就是整个框架的上方。

p2add(l2);//跟p1面板的 *** 作一样,就不赘述了。说白了,就是要把这些元素一点一点的放上去,就好像你摞积木,要一块一块的来

p2add(t2);//先放啥,后发啥,都要有个顺序,当然swing放的顺序是可以打乱的,但是那样显示出来的效果你可能就不满意了。

p2add(key);

p2add(unkey);

fadd(p2, BorderLayoutSOUTH);//frame框架下面

fadd(ta, BorderLayoutCENTER);//frame框架中间

fpack();//pack是调整窗口大小,尽量满足每一个组件的最优大小的情况下让窗口最小化

fsetVisible(true);//设置是否可见,默认是不可见的,你要是不见这个setVisible,那就看不到你的作品

faddWindowListener(new win());//增加窗口监听器 win是实现了窗口监听器的内部类

scanaddActionListener(new scanner());//浏览按钮增加监听动作,点击浏览按钮之后,scanner中的actionperformed的方法会被调用,打开文件浏览窗口

keyaddActionListener(new keyer());//加密按钮增加监听动作,点击加密按钮之后,keyer中的actionperformed的方法会被调用,进行加密 *** 作

unkeyaddActionListener(new unkeyer());//解密按钮增加监听动作,点击解密按钮之后,unkeyer中的actionperformed的方法会被调用,进行解密 *** 作

}

public static void main(String[] args) {//main方法是你可以直接执行的方法,右键-->run as-->java application就会执行main这个方法,而且mian方法的声明也是固定的,不能改,改了就不会执行这个入口方法了。

code code1 = new code();//声明code对象,会直接调用code类的构造函数public code(),然后就有你看到的界面了。

}

/

   WindowAdapter类说明如下:

1接收窗口事件的抽象适配器类。此类中的方法为空。此类存在的目的是方便创建侦听器对象。

2扩展此类可创建 WindowEvent 侦听器并为所需事件重写该方法。(如果要实现 WindowListener 接口,则必须定义该接口内的所有方法。此抽象类将所有方法都定义为 null,所以只需针对关心的事件定义方法。)

3使用扩展的类可以创建侦听器对象,然后使用窗口的 addWindowListener 方法向该窗口注册侦听器。当通过打开、关闭、激活或停用、图标化或取消图标化而改变了窗口状态时,将调用该侦听器对象中的相关方法,并将 WindowEvent 传递给该方法。 

4方法摘要:

方法摘要

void windowActivated(WindowEvent e) 

激活窗口时调用。

void windowClosed(WindowEvent e) 

当窗口已被关闭时调用。

void windowClosing(WindowEvent e) 

窗口正处在关闭过程中时调用。

void windowDeactivated(WindowEvent e) 

停用窗口时调用。

void windowDeiconified(WindowEvent e) 

取消图标化窗口时调用。

void windowGainedFocus(WindowEvent e) 

该 Window 被设置为聚焦 Window 时调用,聚焦 Window 意味着该 Window 或其某个子组件将接收键盘事件。

void windowIconified(WindowEvent e) 

图标化窗口时调用。

void windowLostFocus(WindowEvent e) 

该 Window 不再为聚焦 Window 时调用,不再为聚焦 Window 意味着键盘事件不再传递到该 Window 或其任意子组件。

void windowOpened(WindowEvent e) 

已打开窗口时调用。

void windowStateChanged(WindowEvent e) 

窗口状态改变时调用。

  @author Administrator

 

 /

class win extends WindowAdapter {//window适配器

public void windowClosing(WindowEvent e) {//重载windowClosing方法

Systemexit(0);//安全退出,这样写会使整个GUI完全退出,不会存在未关掉的情况。

}

}

/

  ActionListener用于接收 *** 作事件的侦听器接口。对处理 *** 作事件感兴趣的类可以实现此接口,而使用该类创建的对象可使用组件的 addActionListener 方法向该组件注册。

  在发生 *** 作事件时,调用该对象的 actionPerformed 方法。

 /

class scanner implements ActionListener {//浏览按钮的监听器

public void actionPerformed(ActionEvent e) {

JFileChooser file = new JFileChooser("");//创建一个文本选择器

int result = fileshowOpenDialog(null);//打开文本选择器

if (result == JFileChooserAPPROVE_OPTION) {//如果选择了某个文件

FileName = filegetSelectedFile()getName();//获取文件名字

path = filegetSelectedFile()getAbsolutePath();//获取文件绝对路径

t1setText(path);//t1这个文本框设置他的内容是文件的绝对路径

FileReader reader = null;

try {

reader = new FileReader(path);//声明一个文件读取器,并指向你选中的文件

int tempchar;

tasetText("");//ta大文本框内容先清空

while ((tempchar = readerread()) != -1) {//readerread()这个方法可以一个一个的读取字符,不断循环,直到读取完毕。

char n = (char) tempchar;//获取到char类型的字符 temppchar是个int值,可以直接强转成char。

char[] m = { n };//定义一个char数组

String M = new String(m, 0, 1);//把char数组转化成字符串

taappend(M);//大文本框后面添加这个字符串,这样只能针对英文字母,不能处理中文噢,你这个程序只能处理abcd这种字母类型的东东。中文是多字节的所以处理不了。

}

readerclose();//关闭读取器,如果你不关闭的话,会留在内存里面,造成垃圾。

} catch (Exception e1) {

taappend("文件读取出错!");//读取失败大文本框显示失败信息

}

}

}

}

class keyer implements ActionListener {//加密的监听器

public void actionPerformed(ActionEvent e) {

FileReader read1 = null;

FileWriter write1 = null;

int n;

try {

String a = t1getText();

String b = t2getText();

File Exist = new File("加密" + FileName);//获取到要加密的文件

if (aequals(""))

throw new MyException1("请选择路径!");

if (Existexists())

throw new MyException1("已存在加密文件,请先删除,再进行加密!");

if (bequals(""))

throw new MyException1("请输入密钥!");

else

n = IntegerparseInt(t2getText());

try {

read1 = new FileReader(path);

write1 = new FileWriter("加密" + FileName, true);

int i;

while ((i = read1read()) != -1) {

write1write((char) (i + n));//这里是把字符的值加上你输入要加密的密钥,比如5,然后写入到你创建的文件中

}

write1close();

JOptionPaneshowMessageDialog(null, "加密成功", "祝贺您",

JOptionPanePLAIN_MESSAGE);//这个是显示提示框

tasetText("");

t2setText("");

} catch (IOException e1) {

}

} catch (MyException1 e2) {

}

}

}

class unkeyer implements ActionListener {//解密我就不说了

public void actionPerformed(ActionEvent e) {

FileReader read1 = null;

FileWriter write1 = null;

int n;

try {

String a = t1getText();

String b = t2getText();

File Exist = new File("解密" + FileName);

if (aequals(""))

throw new MyException1("请选择路径!");

if (Existexists())

throw new MyException1("已存在解密密文件,请先删除,再进行解密!");

if (bequals(""))

throw new MyException1("请输入密钥!");

else

n = IntegerparseInt(t2getText());

try {

tasetText("");

t2setText("");

read1 = new FileReader(path);

write1 = new FileWriter("解密" + FileName, true);

int i;

while ((i = read1read()) != -1) {

write1write((char) (i - n));

char[] m = { (char) (i - n) };

String M = new String(m, 0, 1);

taappend(M);

}

write1close();

JOptionPaneshowMessageDialog(null, "解密成功", "祝贺您",

JOptionPanePLAIN_MESSAGE);

} catch (IOException e1) {

}

} catch (MyException1 e2) {

}

}

}

class MyException1 extends Exception {//这个是自定义的异常,如果有异常,d出框展示异常信息。

public MyException1(String message) {

JOptionPaneshowMessageDialog(null, message);

}

}

}

不要谢我,我叫雷哄

目前我们已经能够看到一些室内定位技术的应用介绍了。据我所知的有谷歌、诺基亚、博通、IndoorAtals、Qubulus、杜克大学这几个方案。下面笔者就把它们整理一下,欢迎大家在此基础上进行指正、补充。

谷歌方案

谷歌手机地图60版的时候已经在一些地区加入了室内导航功能,此方案主要依靠GPS(室内一般也能搜索到2~3颗卫星)、wifi信号、手机基站以及根据一些“盲点”(室内无GPS、wifi或基站信号的地方)的具体位置完成室内的定位。目前此方案的精度还不是很满意,所以谷歌后来又发布了一个叫“Google Maps Floor Plan Marker”的手机应用,号召用户按照一定的步骤来提高室内导航的精度。

谷歌一直在努力解决两个问题:获取更多的建筑平面图;提高室内导航的精度。建筑平面图是室内导航的基础,就如同GPS车用导航需要电子导航地图一样。谷歌目前想通过“众包”的方式解决数据源的问题,就是鼓励用户上传建筑平面图。另外,用户在使用谷歌的室内导航时,谷歌会收集一些GPS、wifi、基站等信息,通过服务器进行处理分析之后为用户提供更准确的定位服务。

诺基亚方案

诺基亚采用的是HAIP技术,具体是什么笔者也没能查到更多的资料,不过诺基亚正在努力使它成为蓝牙协议的一部分,这样只要你的设备带有蓝牙模块,就能够使用这种技术进行定位。当然,仅有一个蓝牙模块还不能完成定位,还需要在室内安装一种定位发射台,通过这两者之间的通信完成定位。这种发射台可以覆盖100m×100m的范围,定位精度在30cm~100cm,据说这种发射台还有成本低、功耗低等特点,一台或多台都能完成定位。

博通方案

博通公司研制了一种用于室内定位的新芯片(BCM4752),具备三维定位功能(即你所在位置的高度也算出来)。这种芯片可以通过wifi、蓝牙或NFC等技术来提供室内定位系统支持。更强大的是,该芯片可以结合其它传感器,例如手机里的陀螺仪、加速度传感器、方位传感器等,将你位置的变化实时计算出来,甚至做到没有死角。博通公司的如意算盘是将这种芯片内置到智能手机里。

IndoorAtlas方案

IndoorAtlas是一家专注于室内导航解决方案的公司,刚成立不久。IndoorAtlas的方案基于地球磁场,依据是每一个具体位置的磁场信息都不一样。不过使用这种技术进行导航比较麻烦,首先用户需要上传建筑平面图,然后还需要你拿着移动设备绕室内一圈,记录下各个位置的地磁信号特征,这些信息需要上传到IndoorAtlas的服务器。最后,你需要使用IndoorAtlas提供的工具包开发一个应用才能使用定位功能(IndoorAtlas的开发工具包可以在线申请,不过笔者申请了两次都没结果)。

Qubulus方案

跟IndoorAtlas不同的是,Qubulus公司根据无线电信号(Radio Signature)来定位。每一个位置的无线电信号数量、频度、强度等也是不同的,Qubulus根据这些差异计算出你的具体位置。使用Qubulus的方案,你同样需要收集室内的无线电信号。Qubulus也提供了开发工具包,很容易申请下来。开发工具包里有一个例子,可以使用Eclipse直接编译通过。

杜克大学方案

杜克大学则借助现实生活中路标(landmarks)的思想,正在开发一个叫做UnLoc的应用。此应用通过感知wifi、3G信号死角,以及一些运动特征,如电梯、楼梯等,并根据这些位置已知的路标来计算你的位置。当你移动的时候,就根据其他感应器( 陀螺仪、加速度传感器、方位传感器等)来跟踪你的位置。这一过程精度会逐渐降低,但当你到达下一个路标时,位置就会被校准。

智慧图方案

北京智慧图科技有限责任公司通过检测Wi-Fi、蓝牙节点(iBeacon)的信号强度进行定位,目前智慧图定位产品包括终端侧定位与网络侧定位两种 。终端侧定位通过手机检测无线网络信号,进行手机自主定位导航,在手机app中提供了部分室内场馆(机场及商业广场)的室内位置服务功能(定位、导航、POI搜索、优惠查询等)。网络侧定位由Wi-Fi的无线AP检测移动设备的信号,进行定位,主要应用于建筑内的客流数据统计分析,该模式主要为大型商业广场、店铺、公共文化建筑提供服务。

sqlmangrexe是一个计算机进程,为一个系统托盘程序,用于开始、暂停和停止某个SQL Server服务。

使用这个SQLUIRLdll动态链注册一下。

看好了那个dll扩展名的动态链名称,然后使用工具重新下载覆盖之。方法看教程。

方法一:

1、在同系统中找到此文件,黏贴到:C:\Windows\System32文件夹底下

2、打开CMD窗口输入如下命令注册一下所有的动态链:

for %1 in (%windir%\system32\dll) do regsvr32exe /s %1 回车执行

for %1 in (%windir%\system32\ocx) do regsvr32exe /s %1 回车执行

两条分别运行完成后重启机器。

参考资料:

《模块已加载,但找不到入口点DLLRegisterServer》>

UN系列 UN-100型对焊机的使用方法如下:1、UN1--25型对焊机为手动偏心轮夹紧机构。其底座和下电极固定在焊机座板上,当转动手柄时,偏心轮通过夹具上板对焊件加压,上下电极间距离可通过螺钉来调节。当偏心轮松开时,d簧使电极压力去掉。2、UN1--40--75--100--150型对焊机先按焊件的形状选择钳口,如焊件为棒材,可直接用焊机配置钳口;如焊件异型,应按焊件形状定做钳口。

3、调整钳口,使钳口两中心线对准,将两试棒放于下钳口定位槽内,观看两试棒是否对应整齐。如能对齐,焊机即可使用;如对不齐,应调整钳口。调整时先松开紧固螺丝(12),再调整调节螺杆(14),并适当移动下钳口,获得最佳位置后,拧紧紧固螺丝(12)。

4、按焊接工艺的要求,调整钳口的距离。当 *** 纵杆在最左端时,钳口(电极)间距应等于焊件伸出长度与挤压量之差;当 *** 纵杆在最右端时,电极间距相当于两焊件伸出长度,再加2--3毫米(即焊前之原始位置),该距离调整由调节螺丝(1)获得。焊接标尺可帮助您调整参数。

以上就是关于求帮忙解释下这个JAVA程序哪一部分是干什么的,最好详细点全部的内容,包括:求帮忙解释下这个JAVA程序哪一部分是干什么的,最好详细点、室内定位的技术方案、win7升级成win10后启动就一直提示:无法定位序数1于动态链接库 WINDOWS\SYSTEM32\SQLUNRL.DLL上等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9729684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存