自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 收藏
  • 关注

原创 日记导航

1 Eclipse 的使用2 Java思考问题3 Java语法4.API     4.1 String类和StringBuffer类     4.2.1 集合类Vetor类和Enumeration接口     4.2.2 集合类 Collection接口和 Iterator接口     4.2.3 Collection Set ArrayList接口的区别     4.2.4 集合Hashtable类     4.2.5 集合Properties类     4.3调用系统进程和虚

2011-01-29 12:24:00 444

原创 12.14.2JScrollPane

<br /> p { margin-bottom: 0.21cm; }<br />JscrollPane是由水平和垂直方向上的JscrollBar,以及一个JViewport组成<br />调用JscrollPane.getViewport方法 可以获得代表滚动窗口中的视图区的JViewport对象<br />调用JViewport.setView方法,可以将滚动窗口中要显示的内容作为子组件增加到JViewport上<br />例子<br /

2011-01-29 12:54:00 555

原创 12.14.1 JFrame

<br /> p { margin-bottom: 0.21cm; }<br />JFrame上面只能有一个唯一的组件,这个组件为JRootPane,调用JFrame.getContentPane()方法可获得JFrame中内置的JRootPane对象<br />应用程序不能直接在Jframe实例对象上增加组件和设置布局管理器,应该在JRootPane对象上增加组件和设置布局管理器。<br />调用Jframe的setDefaultCloseOp

2011-01-29 12:53:00 534

原创 12.14Swing 和 JFC

<br /> p { margin-bottom: 0.21cm; }<br />所有的Swing组件,位于javax.swing包中,他们是构筑在AWT上层的gui组件swing组件是JComponent类的子类Jcomponent又是java.awt.Container的子类<br />为了保证可移植性,swing完全用java语言编写<br />Swing提供了比awt】更多的组件库<br />Swing也增强了

2011-01-29 12:52:00 502

原创 12.13.1 取消布局管理器

<br /> p { margin-bottom: 0.21cm; }<br />调用Container.setLayout(null)方法取消布局管理器设置,在这种情况下,可以调用Componnet.setBounds方法来用绝对坐标设置容器上的每个组件大小和位置<br />不使用布局管理器将会带来一个潜在的问题,当容器大小改变时,所有组件任然保存原来的位置和大小,

2011-01-29 12:51:00 852

原创 12.13 布局管理器

<br /> h4 { margin-top: 0.49cm; margin-bottom: 0.51cm; line-height: 156%; page-break-inside: avoid; }h4.western { font-family: "Arial",sans-serif; font-size: 14pt; }h4.cjk { font-family: "黑体","SimHei"; font-size: 14pt; }h4.ctl { font-family: "

2011-01-29 12:50:00 448

原创 12.12 Panel 与 ScrollPane类

<br /> p { margin-bottom: 0.21cm; }<br />Panel类是一个容器类,用于产生一个特殊的空白面板,可以容纳其他的组件,但不能独立存在<br />ScrollPane类是一种容器类,用于产生滚动窗体,通过滚动条在一个较小的容器窗体中显示较大的子部件<br /> <br />例子<br />TextAreatextArea = newTextArea("",10,50,TextArea.SCROLLBARS_BOTH);;<br

2011-01-29 12:49:00 551

原创 12. 11 Choice

<br /> p { margin-bottom: 0.21cm; }<br />Choice用于制作下拉列表框<br />Choice的语义事件为ItemEvent,对应得监听器接口为ItemListener该接口中只有一个itemstateChanged方法<br /> 

2011-01-29 12:48:00 427

原创 12.10 Checkbox

<br /> p { margin-bottom: 0.21cm; }a:link { color: rgb(0, 0, 255); }<br />Checkbox类用来建立单选按钮和多选按钮(复选框)<br />创建多选按钮 只需调用构造函数Checkbox(String label,Boolean state)<br />创建单选按钮 Checkbox(String label,boolean state, CheckboxGroup group)<br /

2011-01-29 12:47:00 375

原创 12.9 Dialog和FileDialog类

<br /> p { margin-bottom: 0.21cm; }a:link { }<br />Dialog 类<br />Dialog 临时窗体 不可改变大小 一般是用作与客户通信<br />Dialog与FileDialog类<br />Dialog类用于产生对话框<br />模态对话框和非模态对话框<br />模态对话框就是在关闭模态对话框之前不能对其他窗体进程操作 <br />Dialog 类的常用的构造方法<br

2011-01-29 12:35:00 509

原创 12.6 Canvas

<br /> p { margin-bottom: 0.21cm; }<br />Canvas是具有最基本和最简单的GUI功能组件<br />Canvas代表屏幕上一块空白的矩形区域,程序能够在这个部件表面绘图,也能够捕获用户的操作,产生相应的事件<br />当设计自定义的具有gui功能的组件类是,继承Canvas将会大大简化编程难度

2011-01-29 12:33:00 460

原创 12.7 菜单

<br /> p { margin-bottom: 0.21cm; }<br />一个完整的菜单系统有菜单条,菜单和菜单项组成<br />Java中与菜单相关的类主要有MenuBar(菜单条),Menu(菜单),MenuItem(菜单项)<br />setActionCommand方法是为菜单设置类似于dephi的name的值<br />ActionListener接口用于处理组件的事件监听器 <br />ActionListener。getAc

2011-01-29 12:33:00 415

原创 12.5.2双缓冲区技术

<br /> p { margin-bottom: 0.21cm; }<br />双缓冲区技术就是采用闭屏图像将在java.awt.Graphics对象中绘制的所有图形也同样通过java.awt.Graphics的方式存储在Image上当最小最小化时 通过Image的内部机制自动调用Paint方法我们这时可以在paint方法里面显示出Image<br />双缓冲区技术<br />Component.createImage方法创建Image对象<br />在I

2011-01-29 12:31:00 522

原创 12.5.2 Image的内部机制

<br /> p { margin-bottom: 0.21cm; }<br />Image对象在最小化时会<br />将Image方法存储到缓存中 我们这样能方便我们做重绘操作<br />自动调用paint()方法 所以我们不需要手动调用或用rePaint方法调用<br />编程实例 将一张图片显示出来<br />publicclassDrawImage extendsFrame {<br /> Imageimg= getToolki

2011-01-29 12:30:00 488

原创 12.5.1 Graphics类与图形绘制和组件重绘的处理

<br /> p { margin-bottom: 0.21cm; }a:link { }<br />Graphics绘图<br />Component.getGraphics()返回一个包含Graphics类的包含组件屏幕显示对象Graphics类提供了显示图像,打印文字的一些方法<br />drawLine(int x1, int y1, int x2, int y2)在此图形上下文的坐标系中,使用当前颜色在点 (x1, y1) 和 (x2, y2)

2011-01-29 12:20:00 1262 1

原创 12.4 修改组件的默认事件处理方式

<br /> p { margin-bottom: 0.21cm; }a:link { color: rgb(0, 0, 255); }<br />修改组件的默认事件处理方式即给组件的各个事件添加各个事件的代码<br />事件侦听器编码的常量java.awt.AWTEvent(从此类找事件编码即想侦测哪一个事件就在里面找)<br />每一个组件都有的方法<br />ProcessEvent 此方法是处理所有事件的一个方法<br />ProcessXxxEvent

2011-01-29 12:18:00 613

原创 12.3 事件适配器XxxAdapte

<br /> p { margin-bottom: 0.21cm; }<br />用事件监视器监视对象必须实现接口中的每一个方法 这样很麻烦 事件适配器他实现了事件监视器的所有方法 我们只需继承事件适配器 需要什么事件的方法时才覆盖它的方法 这样 就简化了我们的操作<br /> <br />事件适配器在java.awt.event包下面<br />Jdk中也提供了大多数事件监听接口的最简单的实现 称之为事件适配器(Adapter)类<br />用事件

2011-01-29 12:17:00 516

原创 12.2 事件监视器XxxListener

<br /> p { margin-bottom: 0.21cm; }<br />事件监听器在java.awt.event包下面<br /> <br />事件处理机制<br />Gui只是程序提供给用户用户界面的组件 并不能为用户操作结果负责 用户操作结果由事件处理机制处理 程序与用户进行交互<br />事件:用户对组件的一个操作,称为一个事件<br />事件源:发生事件的组建源<br />事件处理器:某个java类中的负责处理事件的成员方法<br />

2011-01-29 12:16:00 545

原创 12.1 AWT的基础知识和Frame类

<br /> p { margin-bottom: 0.21cm; }a:link { color: rgb(0, 0, 255); }<br />所有组件都实现了java.awt.Component接口<br />所有的容器都实现了java.awt.Container<br /> <br /> <br />Frame类用来创建图形界面<br />指定图形界面的长度和宽度setSize(300,300);<br />Frame.add添加组件 如创建按钮f.ad

2011-01-29 12:15:00 491

原创 11.6实现一个类似于spring的可配置的AOP框架

<br /> p { margin-bottom: 0.21cm; }<br />此框架实现了再配置文件里面配置一个对象是否使用代理<br />类说明<br />ProxyFactoryBean类是得到Proxy对象<br />BeanFactory类是得到配置文件中的配置信息<br />Advice接口为通知接口 <br /> <br />配置文件配置方法<br />对象名(随便命名) 配置实体对象如果没有代理对象就直接写上实体对象<br />对象名.advic

2011-01-29 12:14:00 497

原创 11.5 将代理方法封装成一个类(通用)

<br /> p { margin-bottom: 0.21cm; }<br />publicclassMyProxyFactoryBean {<br />//第一个参数 通知 建议对象 第二个参数 返回对象 实体对象 <br />publicObjectgetProxy(finalAdvice advice,finalObject target) {<br /> Objectproxy = Proxy.newProxyInstance(<br

2011-01-29 12:12:00 456

原创 11.4 可执行代理和插入通告的通用方法

<br /> p { margin-bottom: 0.21cm; }<br />有了此方法和此接口后 我们使用的时候只需要实现Advice接口Advice接口为通知接口根据需要重写接口里面的方法 调用代理类时 传入我们实现的接口类就行了<br />通用方法<br />建议类接口<br />publicinterfaceAdvice {<br />voidbeforMethod(Method method);<br />voidafterMethod(Me

2011-01-29 12:11:00 411

原创 11.3 InvocationHandler对象运行原理

<br /> p { margin-bottom: 0.21cm; }<br />动态代理类实现了Collection接口(可以实现任何接口),生成的类有Collection接口中的所有方法和接收InvocationHandler参数的构造方法 所以 我们以后的使用中 这个接口是被调用的类所抽象出来的接口<br />InvocationHandler参数就是实现了InvocationHandler接口的类 在此类中有一个唯一的方法invoke

2011-01-29 12:10:00 856

原创 11.2 创建动态代理实例即调用其方法

<br /> p { margin-bottom: 0.21cm; }<br />得到动态代理的构造方法的字节码方法:<br />Constructorconstructor = clazzProxy1<br /> .getConstructor(InvocationHandler.class);<br />创建动态代理需要传入一个InvocationHandler InvocationHandler是一个接口 我们需要定义一个类 实现该接口然后在实例化

2011-01-29 12:09:00 426

原创 11.1 创建动态类及其查看其方法列表信息

<br /> p { margin-bottom: 0.21cm; }a:link { }<br />动态代理类字节码的得到方法:<br />ClassclazzProxy1 = Proxy.getProxyClass(Collection.class<br /> .getClassLoader(),Collection.class);<br />动态代理类用Proxy类来进行定义 <br />Proxy的构造方法Proxy0(java.lang

2011-01-29 12:08:00 388

原创 11 代理

<br /> p { margin-bottom: 0.21cm; }<br />代理类是为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如异常处理,日志,计算方法的的运行时间,事务管理,等等 这时候,就需要编写一个与目标类具有相同接口的代理类,代理类的每个方法调用目标类的相同方法,并在调用方法上加上系统功能的代码<br /> <br />使用工厂模式和配置文件的方式进行管理,不需要修改客服端程序,在配置文件中配置使用目标类,还是使用代理类,这样

2011-01-29 12:06:00 423

原创 10.1 类加载器的委托机制

<br /> p { margin-bottom: 0.21cm; }<br /> <br />派出某个类加载器加载类的加载<br />1.首先当前线程的类加载器去加载线程中的第一个类。<br />2.如果A类引用了B类,jav将继续有A类的类加载器去加载B类<br />3.还可以用CllassLoader.loadClass方法指定某个类加载器去加载某个类<br /> <br />类加载器的委托机制<br />优先委托给上级类加载器加载<b

2011-01-29 12:04:00 346

原创 10.2 自定义类加载器

<br /> p { margin-bottom: 0.21cm; }<br />自定义类加载器的类需要继承ClassLoader类 重写findClass方法重写findClass方法后 才能够正确的优先父类寻找 <br />@Override<br />protectedClass<?> findClass(String name) throwsClassNotFoundException {<br />//得到文件的路径名 <br

2011-01-29 12:04:00 322

原创 10.类加载器

<br /> p { margin-bottom: 0.21cm; }<br />类加载器<br />在java中每一个运行的类都需要用类加载器把字节码加载到内存中,类加载器就是加载类的工具<br /> <br />Java虚拟机中 有多个类加载器系统默认有三个主要的类加载器,BootStrap,ExtClassLoader,AppClassLoader每个类加载器可以加载特定位置的类类加载器本身也是一个java类 java虚拟机

2011-01-29 12:03:00 328

原创 9.2用BeanUtil工具包操作JavaBean

<br /> p { margin-bottom: 0.21cm; }<br />BeanUtil工具包的优点:<br />支持属性链 及如果JavaBean的属性内还有属性 可以直接用 属性。子属性表示 <br />将输入和输出的参数都转换为字符串,我们在做web开发的时候 经常把页面中的字符串转换为其他对象 在这里转换工作由他给我们做了 当然也可以选择不用他给我们做类型转换<br /> <br />BeanUtil所需要的工具:<br />Bea

2011-01-29 12:02:00 615

原创 9.1 用内省的方式反射JavaBean

<br /> p { margin-bottom: 0.21cm; }<br />用内省的方式做JavaBean的反射可以有省去很多步骤<br /> <br />下面是获得一个JavaBean的set属性和get属性的方法<br />publicclassIntroSpectorTest {<br />publicstaticvoidmain(String[] args) throwsException {<br /> <br />//实例化一个

2011-01-29 12:00:00 402

原创 8.10 用类加载器的其他作用

<br /> h3 { margin-top: 0.46cm; margin-bottom: 0.46cm; line-height: 173%; page-break-inside: avoid; }h3.western { font-family: "DejaVu Serif",serif; font-size: 16pt; }h3.cjk { font-family: "DejaVu Sans"; font-size: 16pt; }h3.ctl { font-family:

2011-01-29 11:59:00 355

原创 8.9反射的应用 实现框架的功能

<br /> p { margin-bottom: 0.21cm; }<br />框架概念 框架就是事先写好的代码以后来调用 调用的时候 是框架来调用你写的类<br />工具类的概念 工具类就是先写好的类 以后调用 调用的时候 我们直接调用那个工具类<br /> <br />Properties类 此类和HasMap有点类似 里面都存的是 key value这样的键值对象 , 不同点在于 他可以把硬盘里面的keyvalue

2011-01-29 11:57:00 386

原创 8.7 ArrayList_HasSet 的比较及Hascode分析 和内存泄露

p { margin-bottom: 0.21cm; }ArrayList集合和HasSet集合的比较:ArrayList集合往集合里面装值的时候直接往对象里面装值 不进行判断里面是否有重复的对象HasSet往对象里面装值的时候 要进行判断是否是同一个对象(判断内存地址是否相等)Hascode的解释(HasCode只在Has集合中起作用)HasCode定义在被集合里面的对象里面 作用是 1.根据has算法比较集合中的对

2011-01-29 11:55:00 492

原创 8.6 对接受数组方法的成员方法进行反射

<br /> p { margin-bottom: 0.21cm; }<br />注意:对接收数组方法的成员变量进行反射 用mainMethod.invoke(null,(Object)newString[]{"dsf","432423","iutfryt"});传入数组的时候 如果不转换为Object 编译器会把数组拆分为几个参数<br /> <br />publicclassReflectTest {<br />publicstaticvoid

2011-01-29 11:54:00 365

原创 8.5 成员方法的反射

<br /> p { margin-bottom: 0.21cm; }<br /> <br />/**<br />*成员方法的反射<br />**/<br />//不用反射<br /> System.out.println("不用反射用String的charAt方法"+str1.charAt(0));<br /> MethodmethodCharAt = String.class.getMethod("charAt",int.class);<br /> Sy

2011-01-29 11:53:00 349

原创 8.4 成员变量反射的综合使用实例

<br /> p { margin-bottom: 0.21cm; }<br />取得某一个变量的class 变量名.getType()<br /> <br />得到一个成员变量 Field.get(对象);<br />如果给一个成员赋值 Field.set(对象,值);<br /> <br />下面的实例是将一个对象中的字符串变量中的b换成a<br />publicstaticvoidchangStringValue(Object obj){<b

2011-01-29 11:52:00 375

原创 8.3 成员变量的反射应用

<br /> p { margin-bottom: 0.21cm; }<br />暴力反射:暴力反射就是对于修饰符为private的一些成员变量强制设置为可以使用并且可以访问 <br />设置为可以访问,但不能用实例化field的使用用getDeclaredField("x")得到字段名<br />得到值后设置为可以使用Field后fieldx.setAccessible(true);<br />try{ <br />//反射field

2011-01-29 11:51:00 360

原创 8.2 构造方法的反射应用

<br /> p { margin-bottom: 0.21cm; }<br />调用不带参数的构造方法字节码.newInstance()<br /> <br />调用带参数的构造方法 <br />Constructorconstructor = clazzProxy1.getConstructor(“参数类型”);<br />constructor.newInstance(“参数”);<br /> <br />下面的实例是说明没参数的构造方法的反射方法<br />

2011-01-29 11:50:00 334

原创 8.1 Class类

<br /> p { margin-bottom: 0.21cm; }<br />Class类是用来描述所有类的一个类 proson 是用来描述人 这个类的 Class类就是用来描述所有类的一个类在此类中 描述了类必须有的一些特性 比如说 pakeage constructor field(成员变量)<br /> <br />在定义Class类的时候是指定类的字节码 此字节码一需要加载到内存中,如果未被加载到内存中需要先加载到

2011-01-29 11:49:00 363

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除