ARX2015中AcGs类的一些变化

这两天正在编译一个工程,正好用到了AcGs的一些类,于是知道了如下的一些事情:
ARX2015中AcGs类的一些变化:
1、AcGsGraphicsKernel替换掉了AcGsClassFactory 类。创建它需要用另外一个函数acquireGraphicsKernel,如下:

AcGsKernelDescriptor descriptor;
descriptor.addRequirement(AcGsKernelDescriptor::k3DDrawing);

//这里的参数要特别注意,貌似只能使用AcGsKernelDescriptor::k3DDrawing

//如果使用AcGsKernelDescriptor::k2DDrawing

//因为我的图只需要做二维预览就OK了,所以我选了2D的,结果就是下面的acquireGraphicsKernel返回NULL
AcGsGraphicsKernel *pGraphicsKernel =
AcGsManager::acquireGraphicsKernel(descriptor);
AcGsDevice *offDevice = pGraphicsKernel->createOffScreenDevice();

2、AcGsManager的一些函数也相应地发生了变化:
譬如getGSClassFactory不再存在,已经被上面所说的替代。
createAutoCADDevice函数现在有两个参数,
createAutoCADDevice         (AcGsGraphicsKernel &, HWND hWnd)
第一个参数就是上面提到的AcGsGraphicsKernel类。
新增函数在帮助中已经说明。
3、RenderMode 被废弃,改用visual style
以前的AcGsView的setMode 函数应该用 setVisualStyle
AcGsView *                mpView;

mpView->setVisualStyle(AcGiVisualStyle::k2DWireframe);
//mpView->setMode(AcGsView::kWireframe);   不对!
AcGiCisualStyle提供了32种显示方式,远远超出以前的显示模式的数量。具体用法请参考其相应的include文件。
4、编译中的错误纠正:
error LNK2001: unresolved external symbol “__declspec(dllimport) public: static class AcGsGraphicsKernel * __cdecl AcGsManager::acquireGraphicsKernel
当出现这个错误的时候,请在库的依赖项中添加:AcDrawBridge.lib即可。

发表在 ObjectArx | 留下评论

VS2010,VS2012中“工具>选项中的VC++目录编辑功能已被否决”解决方法

这是VS2010的改变,不能够在“工具-选项”中看到“VC++目录”了。

    但是呢,我们可以在另外一个地方找到它,请看下边的对比照片。

VS2008中:

VS2008工程属性页

 

VS2010中:

VS2010工程属性页

 

打开方式非常简单,选中工程,右键“属性”。或者,通过菜单栏的“项目-属性”也可以打开。

=====================================================================================================

 

      当然以上配置只对当前工程有效。下面介绍一下“一次性配置”的方法,也就是配置一次,以后就不用每次配置了。

      1.执行菜单栏“视图——其他窗口——属性管理器”,可以看到“属性管理器”显示在工作区左侧。如下图所示:

VS2010属性管理器

 

2.双击Debug | Win32下的“Microsoft.Cpp.Win32.user“,在弹出的配置框中配置。这个设置是对所有工程有效的。你可以打开其他的工程或者新建新的工程,可以看到都继承了此配置。

VS2012和VS2010操作是完全一样的

发表在 其它 | 留下评论

CAD,ObjectArx,VS最佳组合(更新到2016)

 

CAD,ObjectArx,VS最佳组合(更新到2016)

CAD版本 内部版本号 ObjectARX版本 VS版本 备注
CAD2000 R15 ObjectARX 2002 VC 6.0  
CAD2002 R15.0.7
CAD2004 R16 ObjectARX 2004 VS 2002(即7.0)

VS 2003(即7.1)

使用ARX2004可能不支持2005及以上版本的一些新特性,例如表格对象,实体排序表,如果需要支持则需要分开编译
CAD2005 R16.1
CAD2006 R16.2
CAD2007 R17 ObjectARX 2007 VS 2005(即8.0)  
CAD2008 R17.1
CAD2009 R17.2
CAD2010 R18 ObjectARX 2010 VS 2008(即9.0) 需要升级sp1补丁,否则会报错,搜索VS2008SP1CHSX1512981下载
CAD2011 R18.1
CAD2012 R18.2
CAD2013 R19 ObjectARX 2013 VS 2010(即10.0) 第一次出现了64位版本,编译时需要分别编译两份。
CAD2014 R19.1
CAD2015 R20 ObjectARX 2015 VS 2012(即11.0) You can use Microsoft Visual Studio 2012 Update 4 to compile ObjectARX
applications for use in AutoCAD 2015. For AutoCAD 2014 and AutoCAD 2013, you can
use Microsoft Visual Studio 2010—doing this allows you to maintain one project,
one development environment, and one version of your application你可以使用微软的Visual Studio 2012更新4编译使用AutoCAD ObjectARX应用程序2015。AutoCAD 2014和 AutoCAD
2013,您可以使用微软Visual Studio 2010,这样做可以让你保持一个项目,一个开发环境,和一个 应用程序版本
CAD2016 R20.1

注:CAD内部版本号主要版本号,如R15,R16,R17相同时可以加载相同的ARX,不同时则会加载失败。新的版本可能增加一些新的特性,开放一些新的API,用了高级的API,则无法在低级版本的CAD中使用,否则都可以通用的。

发表在 ObjectArx | 留下评论

关闭UAC

关闭UAC

UAC,即用户账户控制,在我的理解中这就是微软吃饱了撑的弄出来的恶心人的玩意。

绝对的弊大于利。下面演示一下如何在Window7操作系统中关闭。

Win 8系统下也差不多,只有第一步需要右键菜单,进入控制面板,后续都一样。

1:点击”Windows徽标”进入开始菜单。

开始菜单

2: 控制面板中找到”用户账户”

控制面板

3:”用户账户”点击 “更改用户账户控制设置”

用户账户

4:关闭UAC

关闭UAC

发表在 其它 | 标签为 , | 留下评论

《Java从入门到精通(第3版)》PDF 下载

电子版下载:ftp://www.cadgj.com/Java从入门到精通 第三版.pdf

电子版仅供预览,支持正版,喜欢的请购买正版书籍:《Java从入门到精通(第3版)》

《Java从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。全书分为28章,包括初识Java,熟悉Eclipse开发工具,Java语言基础,流程控制,字符串,数组,类和对象,包装类,数字处理类,接口、继承与多态,类的高级特性,异常处理,Swing程序设计,集合类,I/O(输入/输出),反射,枚举类型与泛型,多线程,网络通信,数据库操作,Swing表格组件,Swing树组件,Swing其他高级组件,高级布局管理器,高级事件处理,AWT绘图与音频播放,打印技术和企业进销存管理系统等。书中所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会Java程序开发的精髓,快速提高开发技能。另外,本书除了纸质内容之外,配书光盘中还给出了海量开发资源库,主要内容如下:

u语音视频讲解:总时长32小时,共312段

u实例资源库:732个实例及源码详细分析

u模块资源库:15个经典模块开发过程完整展现

u项目案例资源库:15个企业项目开发过程完整展现

u测试题库系统:616道能力测试题目

u面试资源库:369个企业面试真题

uPPT电子教案

本书适合作为软件开发入门者的自学用书,也适合作为高等院校相关专业的教学参考书,也可供开发人员查阅、参考。

JAVA入门

图书目录:

 

第1篇 基础知识

 

第1章 初识Java 2

视频讲解:34分钟

1.1 Java简介 3

1.1.1 什么是Java语言 3

1.1.2 Java的应用领域 3

1.1.3 Java的版本 4

1.1.4 怎样学好Java 5

1.1.5 JavaAPI文档 6

1.2 Java语言的特性 7

1.2.1 简单 7

1.2.2 面向对象 7

1.2.3 分布性 7

1.2.4 可移植性 7

1.2.5 解释型 8

1.2.6 安全性 8

1.2.7 健壮性 8

1.2.8 多线程 8

1.2.9 高性能 8

1.2.10 动态 8

1.3 搭建Java环境 9

1.3.1 JDK下载 9

1.3.2 Windows系统的JDK环境 11

1.4 第一个Java程序 15

1.5 小结 17

1.6 实践与练习 17

第2章 熟悉Eclipse开发工具 18

视频讲解:35分钟

2.1 熟悉Eclipse 19

2.1.1 Eclipse简介 19

2.1.2 下载Eclipse 19

2.1.3 安装Eclipse的中文语言包 21

2.1.4 Eclipse的配置与启动 23

2.1.5 Eclipse工作台 24

2.1.6 透视图与视图 25

2.1.7 菜单栏 25

2.1.8 工具栏 28

2.1.9 “包资源管理器”视图 29

2.1.10 “控制台”视图 30

2.2 使用Eclipse 30

2.2.1 创建Java项目 30

2.2.2 创建Java类文件 30

2.2.3 使用编辑器编写程序代码 31

2.2.4 运行Java程序 34

2.3 程序调试 34

2.4 小结 36

2.5 实践与练习 36

第3章 Java语言基础 37

视频讲解:37分钟

3.1 Java主类结构 38

3.1.1 包声明 38

3.1.2 声明成员变量和局部变量 39

3.1.3 编写主方法 39

3.1.4 导入API类库 39

3.2 基本数据类型 39

3.2.1 整数类型 40

3.2.2 浮点类型 41

3.2.3 字符类型 42

3.2.4 布尔类型 43

3.3 变量与常量 43

3.3.1 标识符和关键字 44

3.3.2 声明变量 44

3.3.3 声明常量 45

3.3.4 变量的有效范围 46

3.4 运算符 47

3.4.1 赋值运算符 48

3.4.2 算术运算符 49

3.4.3 自增和自减运算符 50

3.4.4 比较运算符 50

3.4.5 逻辑运算符 51

3.4.6 位运算符 52

3.4.7 三元运算符 54

3.4.8 运算符优先级 54

3.5 数据类型转换 55

3.5.1 隐式类型转换 56

3.5.2 显式类型转换 57

3.6 代码注释与编码规范 58

3.6.1 代码注释 58

3.6.2 编码规范 59

3.7 小结 60

3.8 实践与练习 60

第4章 流程控制 61

视频讲解:25分钟

4.1 复合语句 62

4.2 条件语句 62

4.2.1 if条件语句 63

4.2.2 switch多分支语句 67

4.3 循环语句 69

4.3.1 while循环语句 69

4.3.2 do…while循环语句 70

4.3.3 for循环语句 71

4.4 小结 74

4.5 实践与练习 74

第5章 字符串 75

视频讲解:38分钟

5.1 String类 76

5.1.1 声明字符串 76

5.1.2 创建字符串 76

5.2 连接字符串 77

5.2.1 连接多个字符串 78

5.2.2 连接其他数据类型 78

5.3 获取字符串信息 79

5.3.1 获取字符串长度 80

5.3.2 字符串查找 80

5.3.3 获取指定索引位置的字符 81

5.4 字符串操作 82

5.4.1 获取子字符串 82

5.4.2 去除空格 83

5.4.3 字符串替换 84

5.4.4 判断字符串的开始与结尾 85

5.4.5 判断字符串是否相等 86

5.4.6 按字典顺序比较两个字符串 87

5.4.7 字母大小写转换 88

5.4.8 字符串分割 89

5.5 格式化字符串 91

5.5.1 日期和时间字符串格式化 91

5.5.2 常规类型格式化 94

5.6 使用正则表达式 95

5.7 字符串生成器 97

5.8 小结 99

5.9 实践与练习 100

第6章 数组 101

视频讲解:51分钟

6.1 数组概述 102

6.2 一维数组的创建及使用 102

6.2.1 创建一维数组 102

6.2.2 初始化一维数组 103

6.2.3 使用一维数组 104

6.3 二维数组的创建及使用 104

6.3.1 二维数组的创建 105

6.3.2 二维数组初始化 106

6.3.3 使用二维数组 106

6.4 数组的基本操作 107

6.4.1 遍历数组 107

6.4.2 填充替换数组元素 108

6.4.3 对数组进行排序 110

6.4.4 复制数组 111

6.4.5 数组查询 112

6.5 数组排序算法 114

6.5.1 冒泡排序 114

6.5.2 直接选择排序 116

6.5.3 反转排序 118

6.6 小结 120

6.7 实践与练习 121

第7章 类和对象 122

视频讲解:57分钟

7.1 面向对象概述 123

7.1.1 对象 123

7.1.2 类 124

7.1.3 封装 125

7.1.4 继承 125

7.1.5 多态 126

7.2 类 127

7.2.1 成员变量 127

7.2.2 成员方法 128

7.2.3 权限修饰符 129

7.2.4 局部变量 130

7.2.5 局部变量的有效范围 130

7.2.6 this关键字 131

7.3 类的构造方法 132

7.4 静态变量、常量和方法 133

7.5 类的主方法 135

7.6 对象 137

7.6.1 对象的创建 137

7.6.2 访问对象的属性和行为 138

7.6.3 对象的引用 140

7.6.4 对象的比较 141

7.6.5 对象的销毁 142

7.7 小结 143

7.8 实践与练习 143

第8章 包装类 144

视频讲解:19分钟

8.1 Integer 145

8.2 Boolean 147

8.3 Byte 149

8.4 Character 150

8.5 Double 151

8.6 Number 153

8.7 小结 153

8.8 实践与练习 153

第9章 数字处理类 154

视频讲解:21分钟

9.1 数字格式化 155

9.2 数学运算 157

9.2.1 Math类 158

9.2.2 常用数学运算方法 158

9.3 随机数 162

9.3.1 Math.random()方法 162

9.3.2 Random类 164

9.4 大数字运算 165

9.4.1 BigInteger 166

9.4.2 BigDecimal 168

9.5 小结 171

9.6 实践与练习 171

 

第2篇 核心技术

 

第10章 接口、继承与多态 174

视频讲解:36分钟

10.1 类的继承 175

10.2 Object类 178

10.3 对象类型的转换 180

10.3.1 向上转型 180

10.3.2 向下转型 181

10.4 使用instanceof操作符判断对象类型 182

10.5 方法的重载 184

10.6 多态 187

10.7 抽象类与接口 189

10.7.1 抽象类 189

10.7.2 接口 190

10.8 小结 193

10.9 实践与练习 193

第11章 类的高级特性 194

视频讲解:29分钟

11.1 Java类包 195

11.1.1 类名冲突 195

11.1.2 完整的类路径 195

11.1.3 创建包 196

11.1.4 导入包 197

11.2 final变量 199

11.3 final方法 202

11.4 final类 203

11.5 内部类 204

11.5.1 成员内部类 204

11.5.2 局部内部类 208

11.5.3 匿名内部类 209

11.5.4 静态内部类 210

11.5.5 内部类的继承 211

11.6 小结 211

11.7 实践与练习 211

第12章 异常处理 212

视频讲解:23分钟

12.1 异常概述 213

12.2 处理程序异常错误 213

12.2.1 错误 214

12.2.2 捕捉异常 214

12.3 Java常见异常 216

12.4 自定义异常 217

12.5 在方法中抛出异常 218

12.5.1 使用throws关键字抛出异常 218

12.5.2 使用throw关键字抛出异常 219

12.6 运行时异常 221

12.7 异常的使用原则 221

12.8 小结 222

12.9 实践与练习 222

第13章 Swing程序设计 223

视频讲解:1小时2分钟

13.1 Swing概述 224

13.1.1 Swing特点 224

13.1.2 Swing包 224

13.1.3 常用Swing组件概述 225

13.2 常用窗体 225

13.2.1 JFrame窗体 225

13.2.2 JDialog窗体 227

13.3 标签组件与图标 229

13.3.1 标签的使用 229

13.3.2 图标的使用 230

13.4 常用布局管理器 232

13.4.1 绝对布局 233

13.4.2 流布局管理器 234

13.4.3 边界布局管理器 235

13.4.4 网格布局管理器 237

13.5 常用面板 238

13.5.1 JPanel面板 238

13.5.2 JScrollPane面板 239

13.6 按钮组件 240

13.6.1 提交按钮组件 240

13.6.2 单选按钮组件 242

13.6.3 复选框组件 243

13.7 列表组件 244

13.7.1 下拉列表框组件 244

13.7.2 列表框组件 246

13.8 文本组件 248

13.8.1 文本框组件 248

13.8.2 密码框组件 249

13.8.3 文本域组件 249

13.9 常用事件监听器 250

13.9.1 监听事件简介 251

13.9.2 动作事件监听器 251

13.9.3 焦点事件监听器 253

13.10 小结 254

13.11 实践与练习 254

第14章 集合类 255

视频讲解:24分钟

14.1 集合类概述 256

14.2 Collection接口 256

14.3 List集合 257

14.3.1 List接口 257

14.3.2 List接口的实现类 258

14.4 Set集合 259

14.5 Map集合 261

14.5.1 Map接口 261

14.5.2 Map接口的实现类 262

14.6 小结 264

14.7 实践与练习 264

第15章 I/O(输入/输出) 265

视频讲解:39分钟

15.1 流概述 266

15.2 输入/输出流 266

15.2.1 输入流 266

15.2.2 输出流 268

15.3 File类 269

15.3.1 文件的创建与删除 269

15.3.2 获取文件信息 270

15.4 文件输入/输出流 272

15.4.1 FileInputStream与FileOutputStream类 272

15.4.2 FileReader和FileWriter类 273

15.5 带缓存的输入/输出流 275

15.5.1 BufferedInputStream与BufferedOutputStream类 276

15.5.2 BufferedReader与BufferedWriter类 276

15.6 数据输入/输出流 278

15.7 ZIP压缩输入/输出流 279

15.7.1 压缩文件 280

15.7.2 解压缩ZIP文件 281

15.8 小结 283

15.9 实践与练习 283

第16章 反射 284

视频讲解:48分钟

16.1 Class类与Java反射 285

16.1.1 访问构造方法 286

16.1.2 访问成员变量 289

16.1.3 访问方法 291

16.2 使用Annotation功能 294

16.2.1 定义Annotation类型 294

16.2.2 访问Annotation信息 297

16.3 小结 300

16.4 实践与练习 300

第17章 枚举类型与泛型 301

视频讲解:22分钟

17.1 枚举类型 302

17.1.1 使用枚举类型设置常量 302

17.1.2 深入了解枚举类型 304

17.1.3 使用枚举类型的优势 309

17.2 泛型 310

17.2.1 回顾“向上转型”与“向下转型” 310

17.2.2 定义泛型类 311

17.2.3 泛型的常规用法 312

17.2.4 泛型的高级用法 316

17.2.5 泛型总结 318

17.3 小结 318

17.4 实践与练习 318

第18章 多线程 319

视频讲解:20分钟

18.1 线程简介 320

18.2 实现线程的两种方式 320

18.2.1 继承Thread类 321

18.2.2 实现Runnable接口 322

18.3 线程的生命周期 324

18.4 操作线程的方法 326

18.4.1 线程的休眠 326

18.4.2 线程的加入 328

18.4.3 线程的中断 329

18.4.4 线程的礼让 331

18.5 线程的优先级 332

18.6 线程同步 334

18.6.1 线程安全 334

18.6.2 线程同步机制 335

18.7 小结 337

18.8 实践与练习 338

第19章 网络通信 339

视频讲解:24分钟

19.1 网络程序设计基础 340

19.1.1 局域网与因特网 340

19.1.2 网络协议 340

19.1.3 端口和套接字 341

19.2 TCP程序设计基础 342

19.2.1 InetAddress类 342

19.2.2 ServerSocket类 343

19.2.3 TCP网络程序 344

19.3 UDP程序设计基础 348

19.3.1 DatagramPacket类 348

19.3.2 DatagramSocket类 349

19.3.3 UDP网络程序 349

19.4 小结 352

19.5 实践与练习 353

 

第20章 数据库操作 354

视频讲解:30分钟

20.1 数据库基础知识 355

20.1.1 什么是数据库 355

20.1.2 数据库的种类及功能 356

20.1.3 SQL语言 356

20.2 JDBC概述 358

20.2.1 JDBC-ODBC桥 358

20.2.2 JDBC技术 359

20.2.3 JDBC驱动程序的类型 359

20.3 JDBC中常用的类和接口 359

20.3.1 Connection接口 360

20.3.2 Statement接口 360

20.3.3 PreparedStatement接口 361

20.3.4 DriverManager类 361

20.3.5 ResultSet接口 361

20.4 数据库操作 362

20.4.1 连接数据库 363

20.4.2 向数据库发送SQL语句 364

20.4.3 处理查询结果集 364

20.4.4 顺序查询 365

20.4.5 模糊查询 366

20.4.6 预处理语句 367

20.4.7 添加、修改、删除记录 369

20.5 小结 371

20.6 实践与练习 371

第3篇 高级应用

 

第21章 Swing表格组件 374

视频讲解:59分钟

21.1 利用JTable类直接创建表格 375

21.1.1 创建表格 375

21.1.2 定制表格 377

21.1.3 操纵表格 381

21.2 表格模型与表格 383

21.2.1 利用表格模型创建表格 383

21.2.2 维护表格模型 385

21.3 提供行标题栏的表格 387

21.4 小结 392

21.5 实践与练习 392

第22章 Swing树组件 393

视频讲解:1小时4分钟

22.1 简单的树 394

22.2 处理选中节点事件 395

22.3 遍历树节点 397

22.4 定制树 399

22.5 维护树模型 402

22.6 处理展开节点事件 404

22.7 小结 406

22.8 实践与练习 406

第23章 Swing其他高级组件 407

视频讲解:1小时35分钟

23.1 高级组件面板 408

23.1.1 分割面板 408

23.1.2 选项卡面板 411

23.1.3 桌面面板和内部窗体 413

23.2 菜单 417

23.2.1 创建菜单栏 417

23.2.2 创建弹出式菜单 419

23.2.3 定制个性化菜单 420

23.3 工具栏 424

23.4 文件选择器 426

23.4.1 文件选择对话框 426

23.4.2 使用文件过滤器 427

23.5 进度条 428

23.6 系统托盘 430

23.7 桌面集成控件 431

23.8 小结 432

23.9 实践与练习 432

第24章 高级布局管理器 433

视频讲解:1小时40分钟

24.1 箱式布局管理器 434

24.2 卡片布局管理器 436

24.3 网格组布局管理器 439

24.4 弹簧布局管理器 445

24.4.1 使用弹簧布局管理器 445

24.4.2 使用弹簧和支柱 448

24.4.3 利用弹簧控制组件大小 449

24.5 小结 450

24.6 实践与练习 450

第25章 高级事件处理 451

视频讲解:33分钟

25.1 键盘事件 452

25.2 鼠标事件 454

25.3 窗体事件 456

25.3.1 捕获窗体焦点变化事件 456

25.3.2 捕获窗体状态变化事件 457

25.3.3 捕获其他窗体事件 459

25.4 选项事件 461

25.5 表格模型事件 462

25.6 小结 465

25.7 实践与练习 465

第26章 AWT绘图与音频播放 466

视频讲解:34分钟

26.1 Java绘图 467

26.1.1 Graphics 467

26.1.2 Graphics2D 467

26.2 绘制图形 467

26.3 绘图颜色与笔画属性 471

26.3.1 设置颜色 471

26.3.2 笔画属性 472

26.4 绘制文本 473

26.4.1 设置字体 474

26.4.2 显示文字 474

26.5 绘制图片 475

26.6 图像处理 477

26.6.1 放大与缩小 477

26.6.2 图像翻转 479

26.6.3 图像旋转 481

26.6.4 图像倾斜 482

26.7 播放音频文件 484

26.8 小结 486

26.9 实践与练习 486

第27章 打印技术 487

视频讲解:32分钟

27.1 打印控制类 488

27.2 “打印”对话框 489

27.3 打印页面 491

27.4 多页打印 493

27.5 打印预览 495

27.6 小结 497

27.7 实践与练习 497

第4篇 项目实战

 

第28章 企业进销存管理系统 500

视频讲解:1小时37分钟

28.1 系统分析 501

28.1.1 需求分析 501

28.1.2 可行性分析 501

28.1.3 编写项目计划书 502

28.2 系统设计 504

28.2.1 系统目标 504

28.2.2 系统功能结构 504

28.2.3 系统业务流程图 505

28.2.4 系统编码规范 506

28.3 开发环境 507

28.4 数据库与数据表设计 508

28.4.1 数据库分析 508

28.4.2 创建数据库 509

28.4.3 创建数据表 510

28.5 创建项目 513

28.6 系统文件夹组织结构 514

28.7 公共类设计 515

28.7.1 Item公共类 515

28.7.2 数据模型公共类 516

28.7.3 Dao公共类 518

28.8 系统登录模块设计 524

28.8.1 设计登录窗体 524

28.8.2 “密码”文本框的回车事件 525

28.8.3 “登录”按钮的事件处理 526

28.9 系统主窗体设计 527

28.9.1 设计菜单栏 527

28.9.2 设计工具栏 530

28.9.3 设计状态栏 531

28.10 进货单模块设计 531

28.10.1 设计进货单窗体 532

28.10.2 添加进货商品 533

28.10.3 进货统计 534

28.10.4 商品入库 536

28.11 销售单模块设计 538

28.11.1 设计销售单窗体 538

28.11.2 添加销售商品 539

28.11.3 销售统计 540

28.11.4 商品销售 541

28.12 库存盘点模块设计 542

28.12.1 设计库存盘点窗体 542

28.12.2 读取库存商品 543

28.12.3 统计损益数量 544

28.13 数据库备份与恢复模块设计 545

28.13.1 设计窗体 545

28.13.2 文件浏览 546

28.13.3 备份数据库 547

28.13.4 恢复数据库 548

28.14 运行项目 549

28.15 系统打包发行 551

28.16 开发常见问题与解决 553

28.16.1 数据库无法访问 553

28.16.2 打包的JAR文件无法登录 554

28.16.3 数据库还原不成功 555

28.16.4 数据库只读 555

28.16.5 无法打开内部窗体 555

28.16.6 “关于”界面被其他窗体覆盖 556

28.16.7 打包JAR文件之后无法运行 556

28.16.8 程序运行后没有出现闪屏界面 556

28.17 小结 557

附录A JDK 7改进的功能 558

A.1 语法 558

A.1.1 switch语句允许使用字符串 558

A.1.2 整型数据支持二进制形式 559

A.1.3 数值型数据中可以出现下划线 559

A.1.4 泛型实例的创建可以通过类型推断来简化 559

A.1.5 try-with-resources语句 560

A.1.6 改进了捕获多个异常时的类型检查 560

A.1.7 在可变参数方法中传递非具体化参数时,改进编译警告和错误 561

A.2 网络 562

A.3 Java2D 562

A.4 Swing 563

A.5 JavaI/O 563

A.6 并发 563

A.7 安全性 563

A.8 JavaXML 564

A.9 Java虚拟器(JVM)

 

发表在 Java | 标签为 | 留下评论

ObjectArx2016下载

2016 (32位和64位版本)下载地址

Autodesk_ObjectARX_2016_Win_64_and_32_Bit.exe(Autodesk官网下载)

国外的网站有点慢,本站提供了FTP下载

ftp://www.cadgj.com/Autodesk_ObjectARX_2016_Win_64_and_32_Bit.exe

Windows7以及以上版本操作系统安装过程中需要关闭 UAC, 请参见:关闭UAC

否则会安装失败,及时你以管理员身份运行都不行。

发表在 ObjectArx | 标签为 | 留下评论

CAD2016序列号,产品秘钥,注册机(32位和64位)

32位注册机下载:xf-adsk2016_x86.exe

CAD2016注册机

破解步骤

1、安装AUTOCAD,使用序列号666-69696969,400-12345678密钥为001H1。

2、点击注册机”补丁”按钮

3、启动AutoCAD软件,进到离线激活界面。(注意进到离线激活的界面的方法:第一种是断开网络(可以拔出网线或用防火墙断开),这一步只是为了避免在线检查。这时会告诉你需要联网,点击关闭并重新点击激活。第二种是点击激活,此时会在线检查,立即点击关闭,并重新点击激活,选择“我已经从Autodesk取得激活码”)

4、打开注册机(WIN7、WIN8系统要用鼠标右击选‘以管理员身份运行)。

5、复制请求码(request code)到注册机并点击generate(生成)。

6、把激活码复制后粘到激活对话框中,点“下一步”。

7、激活成功!

发表在 CAD实用软件 | 标签为 , , , , | 3条评论

ObjectArx2015下载

2015 (32位和64位版本)下载地址

Autodesk_ObjectARX_2015_Win_64_and_32_Bit.exe(Autodesk官网下载)

国外的网站有点慢,本站提供了FTP下载

ftp://www.cadgj.com/Autodesk_ObjectARX_2015_Win_64_and_32_Bit.exe

Windows7以及以上版本操作系统安装过程中需要关闭 UAC, 请参见:关闭UAC

否则会安装失败,及时你以管理员身份运行都不行。

发表在 ObjectArx | 标签为 , , | 留下评论

JAVA自动更新程序

import javax.swing.*;

import java.awt.*;

import java.net.*;

import java.io.*;

public class CheckUpdate extends JFrame {

JFrame c = this;

public CheckUpdate() {

//设置窗体属性

setAttb();

JLabel title = new JLabel(“正在检查网络上的更新资源”);

this.add(title, BorderLayout.NORTH);

JTextArea msg = new JTextArea();

this.add(msg, BorderLayout.CENTER);

JLabel process = new JLabel();

this.add(process, BorderLayout.SOUTH);

 

//启动更新线程

new Check(msg, process).start();

}

private class Check extends Thread {

//标识,是否存在新的更新文件

private boolean isUpdated = false;

//保存最新的版本

String netVersion;

//本地版本文件名

String LocalVerFileName = “ver.txt”;

//显示信息

private JTextArea msg;

private JLabel process;

public Check(JTextArea msg, JLabel process) {

this.msg = msg;

this.process = process;

}

public void run() {

//更新文件版本标识URL

String versionUrl = “http://XXX.XXX.XXX/AutoUpdate/ver”;

/**//*

这里是通过HTTP访问一个页面,以取得网络上的版本号

比如这里就是在这个页面直接打印出 6.19.1.1

然后把这个版本号比对本地的版本号,如果版本号不同的话,就从网络上下载新的程序并覆盖现有程序

*/

URL url = null;

InputStream is = null;

InputStreamReader isr = null;

BufferedReader netVer = null;

//读取网络上的版本号

try {

url = new URL(versionUrl);

is = url.openStream();

isr = new InputStreamReader(is);

netVer = new BufferedReader(isr);

String netVerStr = netVer.readLine();

String localVerStr = getNowVer();

if (netVerStr.equals(localVerStr)) {

msg.append(“当前文件是最新版本\n”);

isUpdated = false;

} else {

msg.append(“存在更新文件,现在开始更新\n”);

isUpdated = true;

netVersion = netVerStr;

}

} catch (MalformedURLException ex) {

} catch (IOException ex) {

} finally {

//释放资源

try {

netVer.close();

isr.close();

is.close();

} catch (IOException ex1) {

}

}

//如果版本不同,下载网络上的文件,更新本地文件

if (isUpdated) {

//本地需要被更新的文件

File oldFile = new File(“client.exe”);

//缓存网络上下载的文件

File newFile = new File(“temp.exe”);

 

//网络上的文件位置

String updateUrl =

“http://XXX.XXX.XXX/downloads/simpkle.exe”;

HttpURLConnection httpUrl = null;

BufferedInputStream bis = null;

FileOutputStream fos = null;

try {

//打开URL通道

url = new URL(updateUrl);

httpUrl = (HttpURLConnection) url.openConnection();

httpUrl.connect();

byte[] buffer = new byte[1024];

int size = 0;

is = httpUrl.getInputStream();

bis = new BufferedInputStream(is);

fos = new FileOutputStream(newFile);

msg.append(“正在从网络上下载新的更新文件\n”);

//保存文件

try {

int flag = 0;

int flag2 = 0;

while ((size = bis.read(buffer)) != -1) {

//读取并刷新临时保存文件

fos.write(buffer, 0, size);

fos.flush();

//模拟一个简单的进度条

if (flag2 == 99) {

flag2 = 0;

process.setText(process.getText() + “.”);

}

flag2++;

flag++;

if (flag > 99 * 50) {

flag = 0;

process.setText(“”);

}

}

} catch (Exception ex4) {

System.out.println(ex4.getMessage());

}

msg.append(“\n文件下载完成\n”);

//把下载的临时文件替换原有文件

CopyFile(oldFile,newFile);

 

//把本地版本文件更新为网络同步

UpdateLocalVerFile();

} catch (MalformedURLException ex2) {

} catch (IOException ex) {

msg.append(“文件读取错误\n”);

} finally {

try {

fos.close();

bis.close();

is.close();

httpUrl.disconnect();

} catch (IOException ex3) {

}

}

}

//启动应用程序

try {

msg.append(“启动应用程序”);

Thread.sleep(500);

Process p = Runtime.getRuntime().exec(“client.exe”);

} catch (IOException ex5) {

} catch (InterruptedException ex) {

}

 

//退出更新程序

System.exit(0);

}

//复制文件

private void CopyFile(File oldFile, File newFile) {

FileInputStream in = null;

FileOutputStream out = null;

 

try {

if(oldFile.exists()){

oldFile.delete();

}

in = new FileInputStream(newFile);

out = new FileOutputStream(oldFile);

byte[] buffer = new byte[1024 * 5];

int size;

while ((size = in.read(buffer)) != -1) {

out.write(buffer, 0, size);

out.flush();

}

} catch (FileNotFoundException ex) {

} catch (IOException ex) {

} finally {

try {

out.close();

in.close();

} catch (IOException ex1) {

}

}

}

private void UpdateLocalVerFile() {

//把本地版本文件更新为网络同步

FileWriter verOS = null;

BufferedWriter bw = null;

try {

verOS = new FileWriter(LocalVerFileName);

bw = new BufferedWriter(verOS);

bw.write(netVersion);

bw.flush();

} catch (IOException ex) {

} finally {

try {

bw.close();

verOS.close();

} catch (IOException ex1) {

}

}

}

private String getNowVer() {

//本地版本文件

File verFile = new File(LocalVerFileName);

FileReader is = null;

BufferedReader br = null;

//读取本地版本

try {

is = new FileReader(verFile);

br = new BufferedReader(is);

String ver = br.readLine();

return ver;

} catch (FileNotFoundException ex) {

msg.append(“本地版本文件未找到\n”);

} catch (IOException ex) {

msg.append(“本地版本文件读取错误\n”);

} finally {

//释放资源

try {

br.close();

is.close();

} catch (IOException ex1) {

}

}

return “”;

}

}

private void setAttb() {

//窗体设置

this.setTitle(“Auto Update”);

this.setSize(200, 150);

this.setLayout(new BorderLayout());

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

// 窗体居中

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

Dimension frameSize = this.getSize();

if (frameSize.height > screenSize.height) {

frameSize.height = screenSize.height;

}

if (frameSize.width > screenSize.width) {

frameSize.width = screenSize.width;

}

this.setLocation((screenSize.width – frameSize.width) / 2,

(screenSize.height – frameSize.height) / 2);

}

public static void main(String[] args) {

CheckUpdate checkupdate = new CheckUpdate();

checkupdate.setVisible(true);

}

}

发表在 Java | 留下评论

广告友链和合作

欢迎广大朋友投放广告,交换友链以及其它各方面的合作。

网站基本数据(数据日期:2015.05.26)

百度统计

BP:1

PR:1

每日IP访问:300~500

全部为真实流量,其中80%以上来源于百度等搜索引擎

网站租用独立的云主机。运行安全稳定,不限流量。

主机下只建立了一个网站就是CAD工具之家。

联系方式QQ:245804736

发表在 网站建设 | 2条评论

Win8如何关闭Windows自动更新?图文教程

Win8的Windows自动更新功能能让Win8第一时间自动下载补丁来完善Win8的安全体系,如果你不喜欢让Win8自动进行Windows自动更新的话,可以根据以下的简易图文教程来关闭Win8的Windows自动更新功能。

Win8如何关闭Windows自动更新图文教程第一步——打开控制面板

  将鼠标移动到Win8传统桌面的左下方,然后点击鼠标“右键”,接着点击“控制面板”。

Win8如何关闭Windows自动更新?图文教程
进入“控制面板”

Win8如何关闭Windows自动更新图文教程第二步——选择“从不检查更新”

  进入控制面板之后,依次点击“系统和安全”——“启用或关闭自动更新”——“从不检查更新(不推荐)”——“确定”。

Win8如何关闭Windows自动更新?图文教程
点击“系统和安全”

Win8如何关闭Windows自动更新?图文教程
“启用或关闭自动更新”

Win8如何关闭Windows自动更新?图文教程
选择“从不检查更新(不推荐)”

Win8如何关闭Windows自动更新?图文教程
确定

发表在 其它 | 标签为 , | 留下评论

怎样关闭WIN7系统的自动更新

1.点击计算机左下角开始菜单,找到控制面板,点击打开

  2.选择 系统安全,点击打开

  3.点击 Windows Update 打开

  4.左边栏选择 更改设置 打开

  5.选择下拉栏 选择 除了“自动更新(推荐)”以外的其它选项,点击确定

  6.接下来同时按键盘按键 Win和R键,调出命令提示符,输入gpedit.msc,点击确定,调出 本地组策略编辑器

运行命令输入gpedit.msc

  7.依次点开左边栏,找到管理模板/Windows组件,找到Windows Update,双击

  8.选择 不要在“关闭Windows”对话框显示“安装更新并关机”并双击

  9.选择“已启用” 并依次点击 应用-确定

  【温馨提示】按以上步骤去做,系统自动升级的功能就会关闭,如果想开打开该功能,可以按照以上方法的步骤5处选择“自动安装更新(推荐)”即可。

发表在 网站建设 | 标签为 , | 留下评论

初学JS写的一个房贷计算器

房贷计算器

访问地址:http://www.cadgj.com/tools/house_calculator/

1:利率更新到最新利率15.05.10

2:支持等额本金和等额本息

3:统计清晰全面,利息,还款总额,月薪

4:支持公积金贷款年限和商贷年限不一样(特色功能,全网第一)

发表在 网站建设 | 标签为 | 留下评论

[ARX.NET]添加 XDATA数据

public static void AppendResultBuffer(ResultBuffer rb, ResultBuffer pHead)
        {
            foreach (TypedValue tv in pHead)
            {
                rb.Add(tv);
            }
        }

//添加 XDATA数据
        public static ErrorStatus WriteXData(Transaction trans, DBObject pEnt, string strName, ResultBuffer pHead)
        {
            ResultBuffer pHead1 = GetXdata(pEnt, strName);
            if (null == pHead1)
            {
                ErrorStatus es = RegisterApp(trans, pEnt.Database, strName);
                if (ErrorStatus.OK != es)
                {
                    return es;
                }
            }
            ResultBuffer pXdata = pEnt.XData;
            if (pXdata == null)
            {
                pEnt.XData = pHead;
                return ErrorStatus.OK;
            }
            ResultBuffer rb = new ResultBuffer();
            TypedValue[] tvs = pXdata.AsArray();
            for (int i = 0; i < tvs.Length; i++)
            {
                TypedValue tv = tvs[i];
                if (tv.TypeCode != (short)DxfCode.ExtendedDataRegAppName)
                {
                    rb.Add(tv);
                    continue;
                }
                if (string.Compare(tv.Value.ToString(), strName) != 0)
                {
                    rb.Add(tv);
                    continue;
                }
                AppendResultBuffer(rb, pHead);
                int nNext = -1;
                for (int j = i + 1; j < tvs.Length; j++)
                {
                    TypedValue tv1 = tvs[j];
                    if (tv1.TypeCode == (short)DxfCode.ExtendedDataRegAppName)
                    {
                        nNext = j;
                        break;
                    }
                }
                if (nNext > 0)
                {
                    for (int j = nNext; j < tvs.Length; j++)
                    {
                        rb.Add(tvs[j]);
                    }
                }
                pEnt.XData = rb;
                return ErrorStatus.OK;
            }
            AppendResultBuffer(rb, pHead);
            pEnt.XData = rb;
            return ErrorStatus.OK;
        }

发表在 ObjectArx.Net | 留下评论

[ARX.NET]注册XData

public static ErrorStatus RegisterApp(Transaction trans, Database pDb, string pAppName)
        {
            RegAppTable appTbl = trans.GetObject(pDb.RegAppTableId, OpenMode.ForWrite) as RegAppTable;
            if (!appTbl.Has(pAppName))
            {
                Autodesk.AutoCAD.DatabaseServices.RegAppTableRecord appTblRcd = new Autodesk.AutoCAD.DatabaseServices.RegAppTableRecord();
                appTblRcd.Name = pAppName;
                appTbl.Add(appTblRcd);
                trans.AddNewlyCreatedDBObject(appTblRcd, true);
            }
            return ErrorStatus.OK;
        }

发表在 ObjectArx.Net | 留下评论

[ARX.NET]获取对象指定注册名的XData

/// <summary>
        /// 获取对象指定注册名的XData
        /// </summary>
        /// <param name=”obj”>对象</param>
        /// <param name=”regApptableName”>注册名</param>
        /// <returns></returns>
        public static ResultBuffer GetXdata(DBObject obj, string regApptableName)
        {
            ResultBuffer pXdata = obj.XData;
            if (pXdata == null)
            {
                return null;
            }
            ResultBuffer rb = new ResultBuffer();
            TypedValue[] tvs = pXdata.AsArray();
            for (int i = 0; i < tvs.Length; i++)
            {
                TypedValue tv = tvs[i];
                if (tv.TypeCode != (short)DxfCode.ExtendedDataRegAppName)
                    continue;
                if (string.Compare(tv.Value.ToString(), regApptableName) != 0)
                    continue;
                rb.Add(tv);
                for (int j = i + 1; j < tvs.Length; j++)
                {
                    TypedValue tv1 = tvs[j];
                    if (tv1.TypeCode == (short)DxfCode.ExtendedDataRegAppName)
                    {
                        return rb;
                    }
                    rb.Add(tv1);
                    if (j == tvs.Length – 1)
                    {
                        return rb;
                    }
                }
            }
            return null;
        }

发表在 ObjectArx.Net | 留下评论

百度站长平台已为您开通Sitemap权限,竟然被我错过了,悲剧啊

亲爱的网站管理员:

很高兴的通知您,您的网站http://www.cadgj.com/ 已通过审核,获得百度站长平台sitemap工具权限,请尽快进入sitemap工具提交数据。sitemap工具地址: http://zhanzhang.baidu.com/sitemap/index

sitemap简称网站地图,是百度为优质网站提供的快速收录工具,网站可以通过提交sitemap告知百度spider站点中哪些网页可供抓取、网站的结构、网站最新更新的优质内容等,实现更好地抓取。

若网站主域开通sitemap权限,则可提交所有子域的网站数据,帮助实现网站内容的快速收录。请尽快登录使用,若超过60天未使用,该权限将会被收回。

这是站长工具发给我的消息,时间是:2014-06-10 08:10:06

我今天才注意到

不得不说自己不是一个合格的站长。

咋能不把百度当回事呢?!!!

看,百度无情的把你抛弃了吧。

抱着试试的太多。

点击链接进去

哈哈,竟然还是能用的。开心中。。。。

发表在 网站建设 | 留下评论

免费云服务器,数据库,SQLSERVER+MYSQL+PHP都支持

西部数码租用了一个服务器,自己要求不高一个人用,有点浪费。
想分享一部分资源出来给朋友建1~2个站
太多了,肯定也不行。
可以完全免费或者分摊少量费用,一年1K多一点也要不了太多钱。
完全免费要求和CAD相关,并要求部分链接链接到我的主站点,具体的QQ聊,我也没完全想好。
需要的联系QQ 245804736
发表在 网站建设 | 留下评论

Auto CAD工具栏不见了怎么办?

Auto CAD工具栏不见了找回方法。

百度经验:jingyan.baidu.com

工具/原料

  • Auto CAD

百度经验:jingyan.baidu.com

方法/步骤

  1. 1

    首先打开(Auto CAD)。

  2. 2

    举例:打开什么工具栏都没,恢复方法。

    如果其中任意一个工具栏不见,都可以使用以下方法恢复。

  3. 3

    鼠标在CAD空白处点击(右键),在点击(选项)。

  4. 4

    点击(配置)。

    点击配置会出现相应的选择。

  5. 5

    点击(重置)。

    点击重置后会出现一个提示框。

  6. 6

    出现提示框后点击(是)。

    目的把CAD恢复到初始安装状态。

  7. 7

    在点击(确定)。

    点击确定后即可关闭CAD,在从新打开CAD。

  8. 8

    完成恢复。

    END

百度经验:jingyan.baidu.com

注意事项

  • 如果在画图期间请保存图纸在恢复工具栏。

  • 此方法不行,可以卸载CAD在从新安装。

发表在 CAD技巧 | 留下评论

DWG文件打开软件(CADSee Plus) v3.2.1 官方免费版

下载:http://www.cadgj.com/wp-content/uploads/2015/05/CADSeePlus.zip

看图纸(原名非常看图)CADSee Plus是为工程设计相关人员提供对常用图片文件(psd、bmp、gif、png、jpg、jpeg、tif、tiff)、 AutoCAD DWG/DXF文件(支持版本为R14、2000、2002、2004、2005、2006、2007、2008、2009、2010、2011、2012、2013)和PDF文件脱离AutoCAD实现快速浏览和打印的工具软件。
CADSee Plus是一款新型的DWG和图形文件管理和浏览软件,体积小巧;类Office 2007界面风格,样式美观且支持换肤。 自带常用字体库,完成图形文件管理和浏览工作。内置Dwg Viewer图形浏览器实现了类ACDSee的DWG/DXF文件缩略图预览效果;支持对图形文件的拷贝、 粘贴、剪切和删除等管理操作。既提供了图形平移、全屏、缩放等一般功能,又提供了独具特色的双图同步浏览功能,并支持全屏模式,方便设计和审 核人员进行双图对比查看,是工程设计人员必备的看图工具。 看图纸(CADSee Plus)

DWG文件打开软件(CADSee Plus)的特色

图纸文件缩略图显示(支持AutoCAD R14-2013和常见图片格式)
支持bmp/jpg/gif/tif/tiff/png等图片浏览 全屏显示模式浏览 支持多页tif/tiff图片浏览 支持图纸文件拷贝粘贴等实现对文件的简单管理 支持多图同步浏览方便审图 提供传统工具条界面模式和Office2007界面模式切换 支持PSD(Adobe Photoshop)格式文件浏览 提供类似AutoCAD的打印模式 打印设置对话框

常见问题

问:用了看图纸在Vista和Win7下浏览某些图纸出现乱码,如何解决? 答:一般是由于缺少字体造成的,Vista和Win7下缺少仿宋字体和楷体等导致。解决这个问题是下载相应的字体库并安装到Windows的Fonts目录下即可正常。 点这里下载[仿宋字体]>>> 问:看图纸目前都支持什么命令集? 答:目前支持的命令有: HELP/?:帮助 ABOUT:关于 OPTIONS:选项 LAYER:层管理 QUIT:退出程序 CLOSE:关闭当前文档 SAVEAS:另存当前文档 OPEN:打开文档 PAN/P:平移 ZOOM/Z:视图缩放 VIEW:查看文档 问:看图纸如何支持三维图形显示? 答:在命令行输入Options命令,在“显示驱动”中选择“三维显示驱动”,即可显示三维图形

更新日志

V3.2.1 正式版 更新日期:2013-1-12 [功能及用户体验改进] 01、修复在图纸打印中不能实现全图打印的问题

发表在 CAD实用软件 | 留下评论