Java
文章平均质量分 80
mylxiaoyi
在探索中求知,在思考中前进
展开
-
基本文本组件(三)
15.4 JPasswordField类JPasswordField组件被设计用来处理密码输入。密码文本域会显示一个特殊的输入掩码,而不会回显用户的输入。其作用类似于具有*输入掩码的JTextField。我们不能取消掩码设置,也不能剪切或是复制密码组件的内容。其目的就是为了强强安全性。15.4.1 创建JPasswordField与JTextField相同,JPasswordField类有五个构造翻译 2012-10-07 12:43:09 · 2656 阅读 · 1 评论 -
基本文本组件(一)
第14章探讨了Swing组件集合的JSpinner所提供的动态输入选择控件。在本章中,我们将会了解Swing基本文本组件的基本功能。更为高级的文本组件将会下一章中进行探讨。Swing组件集合包含五个文本组件。他们共享一个共同的父类,JTextComponent,其中定义了所有的文本组件的更同行为。JTextComponent的直接子类是JTextField,JTextArea以及JEditorPa翻译 2012-09-01 19:39:32 · 1555 阅读 · 1 评论 -
List Model Controls(三)
13.3 JComboBox类Swing组件集合的JComboBox组件是一个多部分组件,允许用户借助于下拉列表由一个预定义的选项集合中进行选择。在其基本配置中,JComboBox类似于JLabel来显示当前的用户选择。嵌入在JLabel中的一个包含在JList控件中选择的弹出菜单。当所需要选项不可用时,JComboBox可以使用JTextField来输入新的选项。当需要时,JList部分会自被嵌翻译 2012-07-01 10:01:26 · 1374 阅读 · 1 评论 -
Spinner Model Controls(三)
14.4 JSpinner编辑器对于每一个JSpinner可用的模型,都有一个附属支持的JSpinner内联类可用。在其中模型允许我们控制对于组件哪些可以选择,微调编辑器允许我们控制如何显示与编辑每一个可选中的值。14.4.1 JSpinner.DefaultEditor类JSpinner的setEditor()方法允许我们使得任意的JComponent作为JSpiner的编辑顺。虽然我们一定可以翻译 2012-07-10 19:37:18 · 1160 阅读 · 0 评论 -
Spinner Model Controls(二)
14.2 SpinnerModel接口到目前为止,我们已经了解了如何与主JSpinner类交互。SpinnerModel接口是组件的数据模型。SpinnerModel的定义如下:public interface SpinnerModel { // Properties public Object getValue(); public void setValue(Object); p翻译 2012-07-10 19:33:17 · 1392 阅读 · 0 评论 -
Spinner Model Controls(一)
在前一章中,我们了解了如何使用基本的列表组件:JList与JComboBox。在本章中,我们将会开始探讨JDK 1.4版本所引入的JSpinner组件。14.1 JSpinner类JSpinner的作用类似于JList或是JComboBox组件与JFormattedTextField的结合。在JList与JComboBox控件中,用户可以由一个预定义的值集合中选择输入。JSpinner允许这种选择翻译 2012-07-10 19:19:40 · 970 阅读 · 0 评论 -
List Model Controls(二)
13.2 JList类JList组件是用于由一个选项集合中选择一个或多个项目的基本Swing组件。我们向用户展示选项列表,依据于组件的选择模式,用户可以选择一个或多个。三个关键元素及其实现定义了JList结构:用于存储JList数据的数据模型,由ListModel接口定义。用于绘制JList的单元渲染器,由ListCellRenderer接口描述。用于选择JList元素的选择模式,由ListSel翻译 2012-05-24 19:22:56 · 3899 阅读 · 2 评论 -
高级Swing容器(三)
11.5 JViewport类JViewport很少在JScrollPane之外使用。通常情况下他位于JScrollPane的中间并且使用ViewportLayout管理器来响应在小空间内显示大Component的定位请求。除了位于JScrollPane的中间以外,JViewport也可以用于JScrollPane的行头与列头。11.5.1 创建JViewportJViewport只有一个无参数的翻译 2012-04-22 18:44:15 · 2670 阅读 · 0 评论 -
高级Swing容器(二)
11.3 JTabbedPane类JTabbedPane类表示曾经流行的属性页来支持在一个窗口中多个容器的输入或输出,其中每次只显示一个面板。使用JTabbedPane类似于使用CardLayout管理器,所不同的是添加到修改内建卡片的支持。然而CardLayout是一个LayoutManager,而JTabbedPane是一个完全功能的Container。如果我们不熟悉属性页,标签对话框或是标签翻译 2012-04-22 18:39:51 · 5036 阅读 · 0 评论 -
List Model Controls(一)
12章探讨了支持滚动与输入或是显示某些边界范围值的边界范围组件。在本章中,我们将会探讨表示选项列表的两个选择控件:JList与JComboBox。这两个组件之间的主要区别在于JList组件支持多项选择,而JComboBox不支持。同时,JComboBox允许用户提供不在可用选项中的选项。 13.1 ListModel接口图13-1显示了在本章中我们将要探讨的两个控件。这两个组件之间所共享的数据模型翻译 2012-05-03 19:15:12 · 3224 阅读 · 0 评论 -
Bounded Range Components(二)
12.4 JSlider类尽管JScrollBar对于屏幕滚动区域十分有用,但是他并不适用于使得用户在一个范围内进行输入。对于这个目的,Swing提供了JSlider组件。除了提供了类似JScrollBar组件所提供的可拖动滑块以外,JSlider同时提供了可视化的标记以及标签来辅助显示当前的设置并且选择新的设置。图12-5显示了几个JSlider组件的示例。JSlider是由几部分组成的。我们所翻译 2012-04-27 18:53:26 · 1207 阅读 · 0 评论 -
Bounded Range Components(一)
在前面的章节中,我们了解了当在屏幕没有足够的空间显示完整的组件时,JScrollPane如何提供了一个可滚动的区域。Swing同时提供了其他的一些支持某种滚动类型或是边界范围值显示的组件。这些可用的组件有JScrollBar,JSlider,JProgressBar,以及更为有限角度的JTextField。这些组件共享BoundedRangeModel作为他们的数据模型。Swing类所提供的这种数翻译 2012-04-26 19:10:51 · 1269 阅读 · 0 评论 -
高级Swing容器(一)
第10章探讨了AWT与Swing中的布局管理器。在本章中,我们将会了解一些构建在这些布局管理器之上的容器以及其他的一些无需布局管理器的容器。我们的探讨由Box类开始,我们将会发现使用BoxLayout管理器来创建一个单行或单列组件的最好方法。接下来我们会了解JSplitPane容器,他类似于其中只有两个组件的特殊的Box。JSplitPane提供了一个分隔栏,用户可以拖动这个分隔栏来调整组件的大小翻译 2012-04-13 18:51:32 · 2264 阅读 · 0 评论 -
布局管理器(二)
10.7 CardLayout类CardLayout布局管理器与其他的布局管理器十分不同。其他的布局管理器尝试一次显示容器中的所有组件,而CardLayout一次只显示一个组件。这个组件可以是一个组件或是一个容器,而后者会让我们看到布局在基于嵌入容器的布局管理器之上的多个组件。现在可以使用JTabbedPane组件了(会在下一章描述),CardLayout很少使用。10.8 BoxLayout类S翻译 2012-04-11 18:42:46 · 1386 阅读 · 0 评论 -
布局管理器(一)
在第9章中,我们了解了Swing组件集合中的各种弹出窗口以及选择器类。在本章中,我们将会了解AWT与Swing布局管理器。然而由于本书关注于Swing组件集合,我们不能仅是简单的使用。我们需要理解AWT与Swing布局管理器。事实上,比起五个Swing布局管理器中的三个,我们更经常使用的是五个AWT布局管理器中的四个。AWT布局管理器是FlowLayout,BorderLayout,GridLay翻译 2012-04-10 19:12:48 · 1459 阅读 · 0 评论 -
高级文本功能(一)
在第15章中,我们介绍了Swing文本组件的各种功能。在本章中,我们将会通过在了解在特殊情况下证明有用的高级功能来继续我们的探讨。Swing文本组件带有许多预定义的功能。例如,正如我们在第15章中看到的,尽管文本组件具有如cut(),copy()与paste()方法来使用系统剪切板,但是事实上我们并不使用这些方法。这是因为Swing文本组件带有他们自己预定义的Action对象集合,我们将会在本章中翻译 2012-10-10 22:37:11 · 1541 阅读 · 0 评论 -
基本文本组件(二)
15.3 JTextField类JTextField组件是用于单行输入的文本组件。JTextField的数据模型是Document接口的PlainDocument实现。PlainDocument模型将输入限制为单属性文本,意味着他必须是单一字体与单一颜色。当在JTextField输入Enter键时,他自动通知所Actionlistener实现。15.3.1 创建JTextFieldJTextFie翻译 2012-09-22 14:14:39 · 2492 阅读 · 0 评论 -
可访问性
Swing框架的一个标准部分就是对于辅助技术的支持。这些技术使得我们的Swing程序可以为具有身体缺陷的人所使用。一些用户需要屏蔽阅读器,声音或是不需要鼠标的输入模式。无鼠标的输入通常是通过键盘实现的,但是也可能是通过特殊的输入设置实现,例如语音设备。用户并不需要具有身体缺陷来体验作为开发者的我们可以用来使得我们的程序更容易访问的选项。例如,我们可以添加工具提示文本,当用户将鼠标放置在组件上时可以翻译 2013-01-07 18:53:03 · 1258 阅读 · 1 评论 -
Undo框架(二)
21.4 Undo框架组件我们已经实际了解了Swing文本组件中的Undo框架并且审视了Command设计模式。下面我们来了解一下框架的单独部分。21.4.1 UndoableEdit接口第一个Undo框架组成部分就是UndoableEdit接口,其定义如下:public interface UndoableEdit { // Properties public String getPre翻译 2012-12-29 18:57:28 · 1359 阅读 · 0 评论 -
Undo框架(三)
21.5 使用外部对象管理Undo状态在前面的示例中,我们自定义的UndoableEdit实现要负责维护可撤销对象的之前与之后状态。Swing Undo框架同时支持使用可撤销编辑实现之外的对象来管理状态的能力。当使用一个外部对象用于状态管理时,我们并不需要实现UndoableEdit接口。相反,我们可以使用StateEdit类作为UndoableEdit实现。然后StateEdit类依赖一个类实现翻译 2012-12-29 18:59:45 · 1029 阅读 · 0 评论 -
Undo框架(一)
在第20章中,我们通过探讨可插拨的观感体系结构支持了解了如何自定义基于Swing的程序。在本章中,我们将会探讨由作为Swing包一部分的JFC所提供的Undo框架。Sun的Swing包包含一个支持我们程序中撤销操作支持的实用程序。他允许我们支持修改我们数据状态的撤销与重做操作。尽管这个框架是Swing包层次结构的一部分,他却可以用在任意的程序中,而不仅是基于组件的程序。21.1 使用Undo框架U翻译 2012-12-28 11:35:04 · 1204 阅读 · 0 评论 -
可插拔的观感体系结构(二)
20.2 创建新的观感除非公司要求我们自定义所有的内容来提供唯一的体验,通常并不需要从头创建一个完整的新观感。通常,开发者通过提供一些自定义的UI委托来对现在的观感进行小量的修改。然而如果我们确实希望创建一个新的观感类,我们只需要创建一个LookAndFeel类的子类。我们仍然必须提供UI委托,但是现在这些类可以由Swing组件隐藏,因为他们的使用将并不会直接为javax.swing组件类所知。2翻译 2012-12-21 20:50:12 · 1519 阅读 · 1 评论 -
可插拨的观感体系结构(一)
在第19章中,我们探讨了Swing的拖放支持。在本章中,我们将会深入我们使用Swing组件库时可用的可插拨的观感体系结构。Swing组件的所有方面都是基于Java的。所以不存在原生代码,AWT组件集合也是如此。如果我们不喜欢组件的方式,我们可以对其进行修改,并且我们可以有多种实现方法。抽象的LookAndFeel类是特定观感的根类。每一个可安装的观感类,正如UIManager.LookAndFee翻译 2012-12-09 12:06:56 · 1906 阅读 · 0 评论 -
拖放支持
拖放支持允许在一个程序中或是屏幕上的某个区域中高亮显示某些内容,选中他,并将其重新分配到另一个程序或是屏幕上的某个区域中。例如,在Microsoft Word中,我们可以选中一段并拖动到一个新位置。随着Java的发展,在新版本中不仅有打印支持,同时也有拖放支持。拖放支持的最主要变化发生在J2SE 1.4版本中。以前版本中的拖放支持极难使用,特别是对于复杂类型的拖放行为更是如此。JDK 5.0版本添翻译 2012-12-06 21:48:39 · 1580 阅读 · 0 评论 -
Tables(三)
18.5 JTableHeader类每一个JTableHeader实例表示所有不同列的头集合中的一个。JTableHeader对象集合放置在JScrollPane中列头视图中。我们很少需要直接使用JTableHeader。然而我们可以配置列头的某些特征。18.5.1 创建JTableHeaderJTableHeader有两个属性。一个使用默认的TableColumnModel,而另一个需要显式指定翻译 2012-11-18 21:35:36 · 1658 阅读 · 1 评论 -
Tables(二)
18.3 TableMode接口现在我们已经了解了JTable组件的基础,现在我们可以了解其内部是如何管理数据元素的了。他是借助于实现了TableModel接口的类来完成的。TableModel接口定义了JTable查询列头与表格单元值,并且当表格可编辑时修改单元值所需要的框架。其定义如下:public interface TableModel { // Listeners public翻译 2012-11-18 09:14:05 · 2222 阅读 · 0 评论 -
Tables(一)
在第17章中,我们深入了解了Swing的JTree组件。在本章中,我们将会探讨JTable组件的细节。该组件是用于以网络的形式显示二维数据的标准Swing组件。18.1 Intoducing Tables图18-1显示了JTable的一个简单示例。我们可以看到这个示例包含日本字体。为了能够看到本章示例程序中的Kanji表意文字,我们需要安装必须的日本字体。然而,在没有配置我们的环境来显示日本字体的翻译 2012-11-17 16:58:55 · 2104 阅读 · 1 评论 -
树(三)
17.6 TreeModel接口TreeModel接口描述了基本的JTree数据模型结构。他描述了父子聚合关系,允许任何的对象成为父节点或是子节点。树有一个根节点,而所有其他的节点都是这个节点的后代。除了返回关于不同节点的信息以外,模型要求实现类管理TreeModelListener对象列表,从而当模型中的节点发生变化时可以得到通知。其他的方法,valueForPathChanged(),用来提供翻译 2012-11-11 09:34:02 · 1089 阅读 · 0 评论 -
树(二)
17.4 编辑树节点除了支持单个的树单元渲染器,JTree组件还可以是可编辑的,从而以许用户修改树的节点的内容。默认情况下,树是只读的。要使得树成为可编辑的,只需要将editable属性设置修改为true即可:aTree.setEditable(true);默认情况下,编辑器是一个文本域。同时对由组合框或是复选框中选择也具有内建支持。如果我们喜欢,我们可以为树创建一个自定义的编辑器,就像我们可以创翻译 2012-11-10 09:28:53 · 1987 阅读 · 1 评论 -
高级文本功能(三)
16.3 The Editor Kits我们已经概略的看到了本章前面所介绍的TextAction对象的一些默认的EditorKit功能。EditorKit类扮演将文本组件的所有不同方面组合在一起的粘合剂。他创建文档,管理动作,并且创建文档或是视图的可视化表示。另外,EditorKit知道如何读取或是写入流。每一个文档类型需要其自己的EditorKit,所以JFC/Project Swing组件为H翻译 2012-10-28 15:04:28 · 1633 阅读 · 0 评论 -
高级文本功能(二)
16.2 Creating Styled Text在第15章中,我们已经了解了显示了普通文本与HTML。通过Swing文本组件-或者至少是JTextPane-我们也可以显示格式化文本,其中不同的文本块可以具有多种属性。这些属性也许包含粗体,斜体,不同的字体或是字符级别的颜色,或者是段落级别的对齐,就如现现代的字处理软件一样。要支持这些功能,Swing提供了许多不同的接口与类,所有这些接口与类以特殊翻译 2012-10-28 14:53:55 · 2496 阅读 · 0 评论 -
树(一)
在第16章中,我们了解了如何使用Swing组件集合中的文本文档功能。在本章中,我们将会了解如何使用Swing树类,JTree组件。17.1 树简介JTree组件是用于显示层次数据元素的可视化组件,也称之为节点。使用树这个隐喻,可以想像一棵倒长的树。树顶部的节点称之为根。树的根节点的扩展是到其他节点的分支。如果节点没有任何由其展开的分支,这个节点就称之为叶节点。图17-1是一棵简单的树。在JTree翻译 2012-11-03 11:19:43 · 1832 阅读 · 4 评论 -
弹出窗口与选择器(五)
9.5 JFileChooser类Swing组件集合同时提供了用于选择文件名字与目录的选择器:JFileChooser类。这个选择器替换了原始AWT组件集合中使用FileDialog的需要。类似于其他的Swing选择器组件,JFileChooser并没有自动被放入一个弹出窗口中,但是他可以放在我们程序中用户界面的任何地方。图9-25显示了一个具有Metal观感,Ocean主题的JFileChoos翻译 2012-03-05 22:52:31 · 3132 阅读 · 4 评论 -
弹出窗口与选择器(五)
9.5 JFileChooser类Swing组件集合同时提供了用于选择文件名字与目录的选择器:JFileChooser类。这个选择器替换了原始AWT组件集合中使用FileDialog的需要。类似于其他的Swing选择器组件,JFileChooser并没有自动被放入一个弹出窗口中,但是他可以放在我们程序中用户界面的任何地方。图9-25显示了一个具有Metal观感,Ocean主题的JFileChoos翻译 2011-11-05 23:15:26 · 81 阅读 · 0 评论 -
Root Pane Container(二)
8.2 JFrame类 JFrame类是使用JRootPane并且实现了RootPaneContainer接口的Swing高层容器。另外,他使用WindowConstants接口来帮助管理相关操作。 8.2.1 创建JFrame JFrame类提供了两个基本构造函数:一个用于不带标题的框架,而另一个用来创建带标题的框架。还有另外两个构造函数使用特定的GraphicsConfiguration来创建框架。 public JFrame()JFrame frame = new JFrame();翻译 2011-05-08 17:33:00 · 1279 阅读 · 0 评论 -
Root Pane Container(四)
8.5 JApplet类 JApplet类是AWT Applet类的扩展。为了在使用Swing组件的applet中能正确的进行事件处理,我们applet必须继承JApplet,而不是Applet。 JApplet的作用与其他的实现了RootPaneContainer接口的高层窗口相同。JApplet与Applet之间一个重要的区别就是默认的布局管理器。因为我们向JApplet的内容面析添加组件,其默认的布局管理器为BorderLayout。这与Applet的默认布局管理器FlowLayout不同。另外,翻译 2011-05-10 13:01:00 · 2393 阅读 · 1 评论 -
Toggle Buttons(二)
5.3 JToggleButton类 JToggleButton是第一个可切换的组件。首先讨论JToggleButton类是因为他是其他们非面向菜单的组件,JCheckBox与JRadioButton,的父类。JToggleButton类似于JButton,当被选中时处理按下状态,相反则会返回到未选中状态。要取消被选中的组件,我们必须重新选择该组件。JToggleButton并不是一个被广泛使用的组件,但是我们会发现在工具栏上这个组件会非常有用,例如在Microsoft Word中或是在一个文件对话奇巧事翻译 2011-03-21 12:49:00 · 1787 阅读 · 0 评论 -
核心Swing组件(七)
4.7 JPanel类 最后一个基本的Swing组件是JPanel组件。JPanel组件可以作为一个通常目的的窗口对象,替换了AWT的Panel窗口,而当我们需要一个可绘制的Swing组件区域时,JPanel替换了Canvas组件。 4.7.1 创建JPanel JPanel有四个构造函数: public JPanel()JPanel panel = new JPanel(); public JPanel(boolean isDoubleBuffered)JPanel pa翻译 2011-03-17 18:57:00 · 2201 阅读 · 2 评论 -
核心Swing组件(六)
4.6 JButton类 JButton组件是可以被选中的最基本的AbstractButton组件。他支持文本,图像以及基于HTML的标签,如图4-12所示。 4.6.1 创建JButton JButton类具有5个构造函数: public JButton()JButton button = new JButton(); public JButton(Icon image)Icon icon = new ImageIcon("dog.jpg");JButton butt翻译 2011-03-16 18:55:00 · 2816 阅读 · 3 评论 -
核心Swing组件(五)
4.5 AbstractionButton类 如图4-1所示,AbstractButton类是作用在幕后作为所用 的Swing按钮组件的一个重要Swing类。在本章稍后的JButton类中所描述的JButton是最简单的子类。其余的子类将会在后续的章节中进行描述。 所有的AbstractButton子类使用ButtonModel接口来存储数据模型。DefaultButtonModel类是所使用的默认实现。另外,我们可以将任意的AbstractButton对象组合为一个ButtonGroup。尽管这种组翻译 2011-03-16 12:38:00 · 1196 阅读 · 1 评论