- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 绘图
如果使用好的GUI框架,绘图应该会非常简单,Swing库正是如此。对于任何绘图程序,其问题在于决定绘图位置的计算通常比对绘图功能的调用要复杂得多,并且这些计算程序常常与绘图程序混在一起,所以看起来程序的接口比实际需要的要更复杂。为了简化问题,考虑一个在屏幕上表示数据的问题,这里的数据将由内置的Math.sin( )方法提供,它可以产生数学上的正弦函数。为了使事情变得更有趣一
2013-08-31 18:50:13 519
原创 弹出式菜单(Pop-up menu
要实现一个 JPopupMenu,最直接的方法就是创建一个继承自 MouseAdapter 的内部类,然后对每个希望具有弹出式行为的组件,都添加一个该内部类的对象://: c14:Popup.java// Creating popup menus with Swing.// import javax.swing.*;import java.awt.*; impo
2013-08-31 18:48:48 1329 1
原创 菜单(Menu)
每个组件都能够持有一个菜单,包括 JApplet, JFrame, JDialog以及它们的子类。它们的setJMenuBar( )方法接受一个JMenuBar对象(每个组件只能持有一个JMenuBar对象)作为参数。你先把JMenu对象添加到JmenuBar中,然后把JmenuItem添加到Jmenu中。每个JmenuItem都能有一个相关联的ActionListener,用来捕获菜
2013-08-31 18:44:41 948
原创 find()
Matcher.find( )用于发现应用于 CharSequence 的多重模式匹配。例如://: c12:FindDemo.javaimport java.util.regex.*;import com.bruceeckel.simpletest.*;import java.util.*;public class FindDemo { privat
2013-08-26 12:04:26 582
原创 模式和匹配器
作为第一个示例,下述类可以用来测试一个输入字符串是否违反了正则表达式。第一个参数是输入的用于匹配的字符串,随后的一个或多个正则表达式将会被应用于输入字符串。在unix/linux 环境下,正则表达式必须以命令行的形式进行引用。当我们创建正则表达式并查看它们是否产生我们所预期的行为时,下面的程序有助于我们对这些正则表达式进行测试。//: c12:TestRegul
2013-08-26 12:03:43 532
原创 字符序列
JDK 1.4 定义了一个新接口CharSequence,它建立了从 String 或 StringBuffer 类中抽象出一个字符序列的定义: interfaceCharSequence { charAt(int i); length(); subSequence(int start, int end); toString();} Strin
2013-08-26 12:02:50 515
原创 复制数组
Java 标准类库提供有 static 方法 System.arraycopy(),用它复制数组比用 for 循环复制要快很多。System.arraycopy()为所有类型作了重载。下面的例子就是用来处理 int 数组的://: c11:CopyingArrays.java// Using System.arraycopy()import com.bruceeckel
2013-08-24 14:21:01 446
原创 填充数组
Java 标准类库 Arrays 也有 fill()方法,但是它作用有限。只能用同一个值填充各个位置,对于保存对象的数组,就是复制同一个引用进行填充。使用 Arrays2.toString()方法,很容易证明这一点://: c11:FillingArrays.java// Using Arrays.fill()import com.bruceeckel.simplete
2013-08-24 14:20:10 1009
原创 受保护的(protected)
现在,我们已向你介绍完了继承,关键字 protected最终具有了意义。在理想世界中,仅靠关键字 private 就已经足够了。但在实际项目中,你经常会想要将某些事物尽可能对这个世界隐藏起来,但仍然允许让导出类的成员访问它们。关键字 protected就是对这一实用主义的首肯。它指明“就类用户而言,这是 private,但对于任何继承于此类的导出类或其他任何位于同一个包内的类来说,
2013-08-22 16:56:15 703
原创 组合与继承之间选择
组合和继承都允许你在新的类中设置子对象(subobject),组合是显式地这样做的,而继承则是隐式的。你或许想知道二者间的区别何在,以及怎样在二者之间做出选择。组合技术通常用于你想要在新类中使用现有类的功能而非它的接口的情形。即,你在新类中嵌入某个对象,借其实现你所需要的功能,但新类的用户看到的只是你为新类所定义的接口,而非嵌入对象的接口。为取得此效果,你需要在新类中嵌入一
2013-08-22 16:55:27 550
原创 名称屏蔽(Name hiding)
如果 Java 的基类拥有某个已被多次重载的方法名称,那么在导出类中重新定义该方法名称,并不会屏蔽其在基类中的任何版本(这一点与 C++不同)。因此,无论是该层或者它的基类中对方法进行定义,重载机制都可以正常工作: //:c06:Hide.java// Overloadinga base-class method name in a derived class// does
2013-08-22 16:54:39 616
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人