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 回车执行
两条分别运行完成后重启机器。
参考资料:
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上等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)