<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/mylxiaoyi" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/mylxiaoyi" type="application/rss+xml"></fs:self_link><lastBuildDate>Sat, 11 Jun 2011 10:44:00 GMT</lastBuildDate><title>mylxiaoyi的专栏</title><description>在探索中求知，在思考中前进</description><link>http://blog.csdn.net/blogrss.aspx?username=mylxiaoyi</link><item><title>弹出窗口与选择器（三）</title><link>http://blog.csdn.net/mylxiaoyi/archive/2011/06/11/6538436.aspx</link><description>9.3 ProgressMonitorInputStream类  ProgressMonitorInputStream类表示一个输入流过滤器，这个输入流过滤器使用ProgressMonitor来检测一个输入流的读取。如果读取需要较长的时间完成，则会显示ProgressMonitor，且用户可以选择弹出窗口中的Cancel按钮，从而使得读取被中断并且输入流会抛出一个InterruptedIOException。  9.3.1 创建ProgressMonitorInputStream  类似于其他的过滤器流，ProgressMonitorInputStream是使用一个到需要过滤的流的引用来创建的。除了到这个过滤器的引用，ProgressMonitorInputStream的构造函数还需要其ProgressMonitor的两个参数：父组件以及一个消息。正如在这里所看到的，构造函数首先需要ProgressMonitor参数：     public ProgressMonitorInputStream(
  Component parentComponent, Object message,&lt;img src=&quot;http://www1.feedsky.com/t1/522108906/mylxiaoyi/csdn.net/s.gif?r=http://blog.csdn.net/mylxiaoyi/archive/2011/06/11/6538436.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Sat, 11 Jun 2011 18:44:00 +0800</pubDate><author>萧易</author><guid isPermaLink="false">http://blog.csdn.net/mylxiaoyi/archive/2011/06/11/6538436.aspx</guid><dc:creator>萧易</dc:creator><fs:srclink>http://blog.csdn.net/mylxiaoyi/archive/2011/06/11/6538436.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/mylxiaoyi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/mylxiaoyi/~1060380/522108906/1060380</fs:itemid></item><item><title>弹出窗口与选择器（二）</title><link>http://blog.csdn.net/mylxiaoyi/archive/2011/05/19/6432848.aspx</link><description>9.2 ProgressMonitor类  ProgressMonitor类用来报告需要一段时间完成的任务的状态。这个类是一个特殊的Swing类，他并不是一个GUI组件，也不是一个选项面板或是JavaBean组件。相反，当任务的每一部分完成时，我们通知ProgressMonitor。如果任务需要一段相当长的时间来完成，ProgressMonitor会显示一个类似图9-15所示的弹出窗口。     在ProgressMonitor显示弹出窗口以后，用户可以做下列两件事情。用户可以监视ProgressMontior显示来确认任务已经完成了多少；当任务完成时，ProgressMonitor显示会自动消失。或者，如果用户选择了关闭按钮，这会通知ProgressMonitor任务需要被结束。要检测关闭，任务需要定时查看ProgressMonitor来确认用户是否关闭了任务操作。否则，任务会继续。  ProgressMonitor类显示的弹出窗口是一个maxCharacterPerLineCount属性设置为60的JOptionPane，允许选项面板自动回行所显示的消息。选项面板会嵌入在一个其标题&lt;img src=&quot;http://www1.feedsky.com/t1/522108907/mylxiaoyi/csdn.net/s.gif?r=http://blog.csdn.net/mylxiaoyi/archive/2011/05/19/6432848.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Thu, 19 May 2011 18:49:00 +0800</pubDate><author>萧易</author><guid isPermaLink="false">http://blog.csdn.net/mylxiaoyi/archive/2011/05/19/6432848.aspx</guid><dc:creator>萧易</dc:creator><fs:srclink>http://blog.csdn.net/mylxiaoyi/archive/2011/05/19/6432848.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/mylxiaoyi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/mylxiaoyi/~1060380/522108907/1060380</fs:itemid></item><item><title>弹出窗口与选择器（一）</title><link>http://blog.csdn.net/mylxiaoyi/archive/2011/05/15/6422077.aspx</link><description>在第8章中，我们了解了顶层容器，例如JFrame与JApplet。另外，我们探讨了用来创建弹出窗口来显示信息或是获取用户输入的JDialog类。尽管JDialog类可以工作得很好，Swing组件集合同时提供了一些更为简单的方法来由弹出窗口获取用户输入，我们将会在本章进行探讨。  JOptionPane类对于显示信息，获取文本用户输入，或是获取问题答案十分有用。ProgressMonitor与ProgressMonitorInputStream类可以使得我们监视长时间任务的过程。另外，JColorChooser与JFileChooser类提供了特性弹出窗口用来由用户获取颜色选择，或是获取文件或目录名。通过使用这些类，我们的界面开发任务可以更为快速与简单的实现。  9.1 JOptionPane Class  JOptionPane是一个可以用来创建放在弹出窗口中的面板的一个特殊类。面板的目的是向用户显示信息或是由用户获取响应。要实现这一任务，面板在四个区域显示内容（如图9-1）：     Icon：图标区域用来显示一个图标，标识显示给用户的信息类型。为特定的消息类型提供默认的图标是所安装&lt;img src=&quot;http://www1.feedsky.com/t1/522108908/mylxiaoyi/csdn.net/s.gif?r=http://blog.csdn.net/mylxiaoyi/archive/2011/05/15/6422077.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Sun, 15 May 2011 10:30:00 +0800</pubDate><author>萧易</author><guid isPermaLink="false">http://blog.csdn.net/mylxiaoyi/archive/2011/05/15/6422077.aspx</guid><dc:creator>萧易</dc:creator><fs:srclink>http://blog.csdn.net/mylxiaoyi/archive/2011/05/15/6422077.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/mylxiaoyi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/mylxiaoyi/~1060380/522108908/1060380</fs:itemid></item><item><title>Root Pane Container（四）</title><link>http://blog.csdn.net/mylxiaoyi/archive/2011/05/10/6408862.aspx</link><description>8.5 JApplet类  JApplet类是AWT Applet类的扩展。为了在使用Swing组件的applet中能正确的进行事件处理，我们applet必须继承JApplet，而不是Applet。  JApplet的作用与其他的实现了RootPaneContainer接口的高层窗口相同。JApplet与Applet之间一个重要的区别就是默认的布局管理器。因为我们向JApplet的内容面析添加组件，其默认的布局管理器为BorderLayout。这与Applet的默认布局管理器FlowLayout不同。另外，Swing applet还可以具有一个工具栏，或者更为特定的JMenuBar，这是applet的JRootPane的另一个属性。  如果我们计划部署一个使用Swing组件的applet，最好是使用Sun Microsystems所提供的Java插件，因为这会随运行时安装Swing库。  如查我们要扩展JApplet类，他只有一个重要的protected方法：     protected JRootPane createRootPane()




8.6 配合桌面使用&lt;img src=&quot;http://www1.feedsky.com/t1/522108909/mylxiaoyi/csdn.net/s.gif?r=http://blog.csdn.net/mylxiaoyi/archive/2011/05/10/6408862.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Tue, 10 May 2011 13:01:00 +0800</pubDate><author>萧易</author><guid isPermaLink="false">http://blog.csdn.net/mylxiaoyi/archive/2011/05/10/6408862.aspx</guid><dc:creator>萧易</dc:creator><fs:srclink>http://blog.csdn.net/mylxiaoyi/archive/2011/05/10/6408862.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/mylxiaoyi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/mylxiaoyi/~1060380/522108909/1060380</fs:itemid></item><item><title>Root Pane Container（三）</title><link>http://blog.csdn.net/mylxiaoyi/archive/2011/05/09/6406259.aspx</link><description>8.3 JWindow类  JWindow类与JFrame类类似。他使用JRootPane用于组件管理并且实现了RootPaneContainer接口。他是一个无装饰的顶层窗口。   8.3.1 创建JWindow  JWindow类有五个构造函数：      public JWindow()
JWindow window = new JWindow();
public JWindow(Frame owner)
JWindow window = new JWindow(aFrame);
public JWindow(GraphicsConfiguration config)
GraphicsConfiguration gc = ...;
JWindow window = new JWindow(gc);
public JWindow(Window owner)
JWindow window = new JWindow(anotherWindow);
public JWindow(Window owner, GraphicsConfiguration config)&lt;img src=&quot;http://www1.feedsky.com/t1/522108910/mylxiaoyi/csdn.net/s.gif?r=http://blog.csdn.net/mylxiaoyi/archive/2011/05/09/6406259.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Mon, 09 May 2011 12:51:00 +0800</pubDate><author>萧易</author><guid isPermaLink="false">http://blog.csdn.net/mylxiaoyi/archive/2011/05/09/6406259.aspx</guid><dc:creator>萧易</dc:creator><fs:srclink>http://blog.csdn.net/mylxiaoyi/archive/2011/05/09/6406259.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/mylxiaoyi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/mylxiaoyi/~1060380/522108910/1060380</fs:itemid></item><item><title>Root Pane Container（二）</title><link>http://blog.csdn.net/mylxiaoyi/archive/2011/05/08/6403781.aspx</link><description>8.2 JFrame类  JFrame类是使用JRootPane并且实现了RootPaneContainer接口的Swing高层容器。另外，他使用WindowConstants接口来帮助管理相关操作。  8.2.1 创建JFrame  JFrame类提供了两个基本构造函数：一个用于不带标题的框架，而另一个用来创建带标题的框架。还有另外两个构造函数使用特定的GraphicsConfiguration来创建框架。     public JFrame()
JFrame frame = new JFrame();
 
public JFrame(String title)
JFrame frame = new JFrame(&quot;Title Bar&quot;);
 
public JFrame(GraphicsConfiguration config)
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gsd[] = ge.getScreenDevices()&lt;img src=&quot;http://www1.feedsky.com/t1/522108911/mylxiaoyi/csdn.net/s.gif?r=http://blog.csdn.net/mylxiaoyi/archive/2011/05/08/6403781.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Sun, 08 May 2011 17:33:00 +0800</pubDate><author>萧易</author><guid isPermaLink="false">http://blog.csdn.net/mylxiaoyi/archive/2011/05/08/6403781.aspx</guid><dc:creator>萧易</dc:creator><fs:srclink>http://blog.csdn.net/mylxiaoyi/archive/2011/05/08/6403781.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/mylxiaoyi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/mylxiaoyi/~1060380/522108911/1060380</fs:itemid></item><item><title>Root Pane Containers（一）</title><link>http://blog.csdn.net/mylxiaoyi/archive/2011/04/25/6362393.aspx</link><description>在第7章中，我们了解使用Swing组件周围的边框。在本章中，我们将会探讨高层Swing容器，并且将会发现与相对应的AWT容器的不同。  使用Swing中的高层容器与使用高层AWT容器不同。对于AWT容器，Frame，Window，Dialog以及Applet，我们可以将组件直接添加到容器，并且我们只有一个位置来放置这些组件。在Swing世界中，高层容器，JFrame，JWindow，JDialog以及JApplet，加上JInternalFrame容器，依赖JRootPane。我们并不能将组件直接添加到容器，而只能将这些组件添加到root pane（根面板）的一部分。然后由根面板来管理这些组件。   为什么添加这个间接层呢？无论我们是否相信，这样做是为了事情的简化。根面板在层中管理其组件，从而如工具提示文本这样的元素总是显示在组件上面，而且我们不必担心拖拽某个组件在其他组件周围运动。   JInternalFrame并没有相对应的AWT组件，他也提供了一些额外的功能用于处理被放置在桌面（在JDesktopPane中）中的情况。JInternalFrame可以用作在Swing程序创建多文&lt;img src=&quot;http://www1.feedsky.com/t1/522108912/mylxiaoyi/csdn.net/s.gif?r=http://blog.csdn.net/mylxiaoyi/archive/2011/04/25/6362393.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Mon, 25 Apr 2011 19:30:00 +0800</pubDate><author>萧易</author><guid isPermaLink="false">http://blog.csdn.net/mylxiaoyi/archive/2011/04/25/6362393.aspx</guid><dc:creator>萧易</dc:creator><fs:srclink>http://blog.csdn.net/mylxiaoyi/archive/2011/04/25/6362393.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/mylxiaoyi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/mylxiaoyi/~1060380/522108912/1060380</fs:itemid></item><item><title>Swing 边框（二）</title><link>http://blog.csdn.net/mylxiaoyi/archive/2011/04/24/6359556.aspx</link><description>7.2 Examining the Predefined Borders  现在我们已经描述了边框基础，现在我们来了解一下每一个预定义的特定边框，在某种程度上以复杂性的顺序进行描述。  7.2.1 EmptyBorder Class  由逻辑上来说，空边框就是在其内部不进行任何绘制的边框。当我们在使用一个通常的AWT容器并且需要覆盖insets()或是getInsets()方法时我们可以使用EmptyBorder。他可以使得我们保留组件周围的额外空间从而略微向外一点扩展屏幕组件或是修改居中或是调整某些方面。图7-3显示了一个空边框以及一个非空边框。     EmptyBorder有两个构造函数以及两个BorderFactory的工厂方法：     public static Border createEmptyBorder()
Border emptyBorder = BorderFactory.createEmptyBorder();
public static Border createEmptyBorder(int top, int left, int bottom, int&lt;img src=&quot;http://www1.feedsky.com/t1/522108913/mylxiaoyi/csdn.net/s.gif?r=http://blog.csdn.net/mylxiaoyi/archive/2011/04/24/6359556.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Sun, 24 Apr 2011 22:44:00 +0800</pubDate><author>萧易</author><guid isPermaLink="false">http://blog.csdn.net/mylxiaoyi/archive/2011/04/24/6359556.aspx</guid><dc:creator>萧易</dc:creator><fs:srclink>http://blog.csdn.net/mylxiaoyi/archive/2011/04/24/6359556.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/mylxiaoyi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/mylxiaoyi/~1060380/522108913/1060380</fs:itemid></item><item><title>Swing 边框（一）</title><link>http://blog.csdn.net/mylxiaoyi/archive/2011/04/24/6358390.aspx</link><description>Swing组件提供了对组件周围的边框区域进行定制的功能。为了简单，我们可以使用预定义的八个边框，或者是我们可以创建自己的边框。在本章中，我们将会了解如何最好的使用已存在边框以及如何创建我们自己的边框。  7.1 Some Basics on Woring with Borders  边框是带有标准的setBorder()与getBorder()属性方法的JComponent属性。所以，所有的JComponent子类的Swing组件都具有边框。默认情况下，一个组件并没有与其相关联的自定义边框。（JComponent的getBorder()方法返回null。）相反，组件显示的默认边框是依据当前的观感对于其状态最为合适的边框。例如，对于JButton，对于每一个观感特定不同的边框，边框可以表现为按下，未按下或是禁止。  尽管对于所有的组件初始的边框属性设置为null，我们可以通过调用JComponent的setBorder(Border newValue)方法来修改组件的边框。一旦设置，修改的值就会覆盖当前观感的边框，并且在组件的区域内绘制新边框。如果在稍后的时候，我们希望将边框重新设置为对&lt;img src=&quot;http://www1.feedsky.com/t1/522108914/mylxiaoyi/csdn.net/s.gif?r=http://blog.csdn.net/mylxiaoyi/archive/2011/04/24/6358390.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Sun, 24 Apr 2011 09:19:00 +0800</pubDate><author>萧易</author><guid isPermaLink="false">http://blog.csdn.net/mylxiaoyi/archive/2011/04/24/6358390.aspx</guid><dc:creator>萧易</dc:creator><fs:srclink>http://blog.csdn.net/mylxiaoyi/archive/2011/04/24/6358390.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/mylxiaoyi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/mylxiaoyi/~1060380/522108914/1060380</fs:itemid></item><item><title>Swing菜单与工具栏（六）</title><link>http://blog.csdn.net/mylxiaoyi/archive/2011/04/12/6318694.aspx</link><description>6.3 使用工具栏：JToolBar类  工具栏是现代用户界面中主程序窗口的主要部分。工具栏向用户提供了对于常用命令的简单访问，这通常构建为层次结构的菜单结构。支持这种功能的Swing组件就是JToolBar。   JToolBar是一个种存放组件的特殊Swing容器。这个容器可以在我们的Java Applet或是程序中用作工具栏，而且可以在程序的主窗口之外浮动或是托拽。JToolBar是一个非常容易使用与理解的简单组件。   6.3.1 创建JToolBar组件  有四个构造函数可以用来创建JToolBar组件：     public JToolBar()
JToolBar jToolBar = new JToolBar();
public JToolBar(int orientation)
JToolBar jToolBar = new JToolBar(JToolBar.VERTICAL);
public JToolBar(String name)
JToolBar jToolBar = new JToolBar(&quot;Window Title&quot;);
public JTo&lt;img src=&quot;http://www1.feedsky.com/t1/522108915/mylxiaoyi/csdn.net/s.gif?r=http://blog.csdn.net/mylxiaoyi/archive/2011/04/12/6318694.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Tue, 12 Apr 2011 18:36:00 +0800</pubDate><author>萧易</author><guid isPermaLink="false">http://blog.csdn.net/mylxiaoyi/archive/2011/04/12/6318694.aspx</guid><dc:creator>萧易</dc:creator><fs:srclink>http://blog.csdn.net/mylxiaoyi/archive/2011/04/12/6318694.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/mylxiaoyi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/mylxiaoyi/~1060380/522108915/1060380</fs:itemid></item></channel></rss>
