swing 好用不

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swing 好用不相关的知识,希望对你有一定的参考价值。

参考技术A 好用的哦
javax.swing
提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。
接口摘要
Action Action 接口提供 ActionListener 接口的一个有用扩展,以便若干控件访问相同的功能。
BoundedRangeModel 定义由 Slider 和 ProgressBar 这类组件使用的数据模型。
ButtonModel 按钮的状态模型。
CellEditor 此接口定义任何通用编辑器应该能够实现的方法。
ComboBoxEditor 用于 JComboBox 组件的编辑器组件。
ComboBoxModel 用于组合框的数据模型。
DesktopManager DesktopManager 对象由 DesktopPane 对象所拥有。
Icon 一个小的固定大小图片,通常用于装饰组件。
JComboBox.KeySelectionManager 定义 KeySelectionManager 的接口。
ListCellRenderer 标识可用作“橡皮图章”以绘制 JList 中单元格的组件。
ListModel 此接口定义方法组件(如 JList),这些组件用于获取列表中每个单元格的值以及列表的长度。
ListSelectionModel 此接口表示任何组件的当前选择状态,该组件显示一个具有稳定索引的值列表。
MenuElement 可以放入菜单中的所有组件都应该实现此接口。
MutableComboBoxModel ComboBoxModel 的可变版本。
Renderer 为负责“呈现”(显示)值的对象定义需求。
RootPaneContainer 此接口由具有单个 JRootPane 子组件的组件来实现,这些子组件包括:JDialog、JFrame、JWindow、JApplet、JInternalFrame。
Scrollable 为类似 JScrollPane 的滚动容器提供信息的接口。
ScrollPaneConstants 与 JScrollPane 组件一起使用的常数。
SingleSelectionModel 最多支持一个索引选项的模型。
SpinnerModel 对象值的潜在无界序列的模型。
SwingConstants 通常用于在屏幕上定位或定向组件的常量的集合。
UIDefaults.ActiveValue 此类使用户能够在默认表中存储项,该默认表在每次使用某个 getXXX(key) 方法进行查找时创建。
UIDefaults.LazyValue 此类使用户能够在默认表中存储项,该默认表只有在第一次使用某个 getXXX(key) 方法进行查找时才创建。
WindowConstants 用于控制窗口关闭操作的常量。

类摘要
AbstractAction 此类提供 JFC Action 接口的默认实现。
AbstractButton 定义按钮和菜单项的一般行为。
AbstractCellEditor
AbstractListModel 该数据模型的抽象定义提供一个带内容的 List。
AbstractSpinnerModel 此类提供 SpinnerModel 接口的 ChangeListener 部分,该接口应该适用于最具体的 SpinnerModel 实现。
ActionMap ActionMap 提供从 Object(称为键 或 Action 名)到 Action 的映射。
BorderFactory 提供标准 Border 对象的工厂类。
Box 使用 BoxLayout 对象作为其布局管理器的一个轻量级容器。
Box.Filler 参与布局但没有视图的轻量级组件的实现。
BoxLayout 允许垂直或水平布置多个组件的布局管理器。
ButtonGroup 此类用于为一组按钮创建一个多斥(multiple-exclusion)作用域。
CellRendererPane 此类被插入在单元格渲染器与使用它们的组件之间。
ComponentInputMap ComponentInputMap 是与特定 JComponent 相关联的 InputMap。
DebugGraphics 支持图形调试的图形子类。
DefaultBoundedRangeModel BoundedRangeModel 的一般实现。
DefaultButtonModel Button 组件的数据模型的默认实现。
DefaultCellEditor 表单元格和树单元格的默认编辑器。
DefaultComboBoxModel 组合框的默认模型。
DefaultDesktopManager 此类是 DesktopManager 的实现。
DefaultFocusManager 此类已被废弃,用 1.4 focus API 取代。
DefaultListCellRenderer 呈现列表中的一个项。
DefaultListCellRenderer.UIResource 实现 UIResource 的 DefaultListCellRenderer 的子类。
DefaultListModel 此类以松散方式实现 java.util.Vector API,它实现 1.1.x 版本的 java.util.Vector,没有 collection 类支持,并且在发生更改时通知 ListDataListener。
DefaultListSelectionModel 列表选择的默认数据模型。
DefaultRowSorter<M,I> RowSorter 的一个实现,它围绕基于网格的数据模型提供排序和过滤操作。
DefaultRowSorter.ModelWrapper<M,I> DefaultRowSorter.ModelWrapper 负责提供由 DefaultRowSorter 进行排序的数据。
DefaultSingleSelectionModel SingleSelectionModel 的一般实现。
FocusManager 从 1.4 focus API 开始,此类已被废弃。
GrayFilter 一个图像过滤器,它通过将图像转换成灰度级图像并增亮图像中的像素来“禁用”图像。
GroupLayout GroupLayout 是一个 LayoutManager,它将组件按层次分组,以决定它们在 Container 中的位置。
ImageIcon 一个 Icon 接口的实现,它根据 Image 绘制 Icon。
InputMap InputMap 提供输入事件(目前只使用 KeyStroke)和 Object 之间的绑定。
InputVerifier 此类的用途是通过带文本字段的 GUI 帮助客户端支持流畅的焦点导航。
InternalFrameFocusTraversalPolicy 该 FocusTraversalPolicy 可以有选择地提供确定 JInternalFrame 初始 Component 的算法。
JApplet java.applet.Applet 的扩展版,它添加了对 JFC/Swing 组件架构的支持。
JButton "push" 按钮的实现。
JCheckBox 复选框的实现,复选框是一个可以被选定和取消选定的项,它将其状态显示给用户。
JCheckBoxMenuItem 可以被选定或取消选定的菜单项。
JColorChooser JColorChooser 提供一个用于允许用户操作和选择颜色的控制器窗格。
JComboBox 将按钮或可编辑字段与下拉列表组合的组件。
JComponent 该类是除顶层容器外所有 Swing 组件的基类。
JDesktopPane 用于创建多文档界面或虚拟桌面的容器。
JDialog 创建对话框窗口的主要类。
JEditorPane 可编辑各种内容的文本组件。
JFileChooser JFileChooser 为用户选择文件提供了一种简单的机制。
JFormattedTextField JFormattedTextField 扩展了 JTextField,添加了对格式化任意值的支持,以及一旦用户编辑了文本就检索特定对象的支持。
JFormattedTextField.AbstractFormatter JFormattedTextField 所使用的 AbstractFormatter 实例,用于处理从 Object 到 String 和从 String 到 Object 的转换。
JFormattedTextField.AbstractFormatterFactory JFormattedTextField 使用的 AbstractFormatterFactory 实例,用来获得 AbstractFormatter 实例,依次使用该实例格式化各个值。
JFrame java.awt.Frame 的扩展版本,该版本添加了对 JFC/Swing 组件架构的支持。
JInternalFrame 提供很多本机窗体功能的轻量级对象,这些功能包括拖动、关闭、变成图标、调整大小、标题显示和支持菜单栏。
JInternalFrame.JDesktopIcon 此组件表示 JInternalFrame 的图标化版本。
JLabel 用于短文本字符串或图像或二者的显示区。
JLayeredPane JLayeredPane 为 JFC/Swing 容器添加了深度,允许组件在需要时互相重叠。
JList 显示对象列表并且允许用户选择一个或多个项的组件。
JList.DropLocation TransferHandler.DropLocation 的一个子类,表示 JList 的放置位置 (drop location)。
JMenu 菜单的该实现是一个包含 JMenuItem 的弹出窗口,用户选择 JMenuBar 上的项时会显示该 JMenuItem。
JMenuBar 菜单栏的实现。
JMenuItem 菜单中的项的实现。
JOptionPane JOptionPane 有助于方便地弹出要求用户提供值或向其发出通知的标准对话框。
JPanel JPanel 是一般轻量级容器。
JPasswordField JPasswordField 是一个轻量级组件,允许编辑单行文本,其视图指示键入内容,但不显示原始字符。
JPopupMenu 弹出菜单的实现,弹出菜单是一个可弹出并显示一系列选项的小窗口。
JPopupMenu.Separator 弹出与菜单有关的分隔符。
JProgressBar 以可视化形式显示某些任务进度的组件。
JRadioButton 实现一个单选按钮,此按钮项可被选择或取消选择,并可为用户显示其状态。
JRadioButtonMenuItem 一个单选按钮菜单项的实现。
JRootPane 该轻量级容器由 JFrame、JDialog、JWindow、JApplet 和 JInternalFrame 在后台使用。
JScrollBar 滚动条的实现。
JScrollPane 提供轻量级组件的 scrollable 视图。
JSeparator JSeparator 为实现分隔线提供了一个通用组件 - 通常用作菜单项之间的分隔符,以便将菜单项分成几个逻辑组。
JSlider 一个让用户以图形方式在有界区间内通过移动滑块来选择值的组件。
JSpinner 让用户从一个有序序列中选择一个数字或者一个对象值的单行输入字段。
JSpinner.DateEditor 其模型为 SpinnerDateModel 的 JSpinner 编辑器。
JSpinner.DefaultEditor 一个针对非常特殊编辑器的简单基类,该类在 JFormattedTextField 中显示模型的当前值的只读视图。
JSpinner.ListEditor 其模型为 SpinnerListModel 的 JSpinner 编辑器。
JSpinner.NumberEditor 其模型为 SpinnerNumberModel 的 JSpinner 编辑器。
JSplitPane JSplitPane 用于分隔两个(只能两个)Component。
JTabbedPane 一个组件,它允许用户通过单击具有给定标题和/或图标的选项卡,在一组组件之间进行切换。
JTable JTable 用来显示和编辑常规二维单元表。
JTable.DropLocation TransferHandler.DropLocation 的一个子类,表示 JTable 的放置位置 (drop location)。
JTextArea JTextArea 是一个显示纯文本的多行区域。
JTextField JTextField 是一个轻量级组件,它允许编辑单行文本。
JTextPane 可以用以图形方式表示的属性来标记的文本组件。
JToggleButton 具有两个状态的(two-state)按钮的实现。
JToggleButton.ToggleButtonModel ToggleButton 模型。
JToolBar JToolBar 提供了一个用来显示常用的 Action 或控件的组件。
JToolBar.Separator 一个特定于工具栏的分隔符。
JToolTip 用来显示 Component 的“提示”。
JTree 将分层数据集显示为轮廓的控件。
JTree.DropLocation TransferHandler.DropLocation 的一个子类,表示 JTree 的放置位置 (drop location)。
JTree.DynamicUtilTreeNode DynamicUtilTreeNode 可以包装 vectors/hashtables/arrays/strings 并根据需要创建适当的子树节点。
JTree.EmptySelectionModel EmptySelectionModel 是一个不允许选择任何内容的 TreeSelectionModel。
JViewport 用于查看底层信息的“视口”或“观察孔”。
JWindow JWindow 是一个容器,可以显示在用户桌面上的任何位置。
KeyStroke 表示键盘或等效输入设置上的键操作的 KeyStroke。
LayoutFocusTraversalPolicy 根据 Component 的大小、位置和方向对其排序的 SortingFocusTraversalPolicy。
LayoutStyle LayoutStyle 提供有关如何确定组件位置的信息。
LookAndFeel 顾名思义,LookAndFeel 封装了一个外观。
MenuSelectionManager MenuSelectionManager 拥有菜单层次结构中的选项。
OverlayLayout 要在彼此顶部安排组件的布局管理器。
Popup Popup 用于向用户显示 Component,它通常位于特定包含层次结构中所有其他 Component 的顶部。
PopupFactory 顾名思义,PopupFactory 用于获取 Popup 的实例。
ProgressMonitor 监视某个操作的进度的类。
ProgressMonitorInputStream 监视读取某些 InputStream 的进度。
RepaintManager 此类管理重绘请求,以最大限度地降低重绘次数。
RowFilter<M,I> RowFilter 用于从模型中过滤条目,使得这些条目不会在视图中显示。
RowFilter.Entry<M,I> 一个传递给 RowFilter 实例的 Entry 对象,允许过滤器获取该条目的数据的值,以确定是否应该显示该条目。
RowSorter<M> RowSorter 提供排序和过滤的基础。
RowSorter.SortKey SortKey 描述特定列的排序顺序。
ScrollPaneLayout JScrollPane 使用的布局管理器。
ScrollPaneLayout.UIResource ScrollPaneLayout 的 UI 资源版本。
SizeRequirements 为方便布局管理器,计算组件的有关大小和位置信息。
SizeSequence 一个 SizeSequence 对象,它有效地维护一个包含大小和相应位置的顺序列表。
SortingFocusTraversalPolicy 通过对焦点遍历循环的 Components 按给定 Comparator 排序确定遍历顺序的 FocusTraversalPolicy。
SpinnerDateModel Date 序列的一个 SpinnerModel。
SpinnerListModel 其值由数组或 List 定义的 SpinnerModel 的简单实现。
SpinnerNumberModel 用于数字序列的 SpinnerModel。
Spring 该 Spring 类的实例将存储以下三个表示其行为特征的属性:minimum、preferred 和 maximum 值。
SpringLayout SpringLayout 根据一组约束布置其相关容器的子组件。
SpringLayout.Constraints Constraints 对象将管理组件大小和位置更改方式的约束存储在 SpringLayout 控制的容器中。
SwingUtilities Swing 实用方法的集合。
SwingWorker<T,V> 在专用线程中执行长时间 GUI 交互任务的抽象类。
Timer 在指定时间间隔触发一个或多个 ActionEvent。
ToolTipManager 管理系统中的所有 ToolTips。
TransferHandler 此类用于处理往返于 Swing 组件的 Transferable 的传输。
TransferHandler.DropLocation 表示放置的数据 (dropped data) 应该插入的位置。
TransferHandler.TransferSupport 此类封装剪贴板或拖放传输的所有相关详细信息,并且还允许自定义拖放过程的各方面。
UIDefaults Swing 组件的默认值表。
UIDefaults.LazyInputMap LazyInputMap 将在其 createValue 方法中创建一个 InputMap。
UIDefaults.ProxyLazyValue 此类提供一个可用于延迟加载要创建实例类的 LazyValue 的实现。
UIManager UIManager 管理当前外观、可用外观集合、外观更改时被通知的 PropertyChangeListeners、外观默认值以及获取各种默认值的便捷方法。
UIManager.LookAndFeelInfo 为了配置菜单或为了初始应用程序设置而提供关于已安装的 LookAndFeel 的少量信息。
ViewportLayout JViewport 的默认布局管理器。

枚举摘要
DropMode 放置模式,用于确定组件在拖放过程中跟踪和指示放置位置 (drop location) 的方法。
GroupLayout.Alignment ParallelGroup 能够对齐其子元素的可能方式的枚举。
JTable.PrintMode 用于打印 JTable 的打印模式。
LayoutStyle.ComponentPlacement ComponentPlacement 是两个组件相对于彼此的可能放置方式的枚举。
RowFilter.ComparisonType 由某些默认 RowFilter 支持的可能比较值的枚举。
SortOrder SortOrder 是可能排序顺序的枚举。
SwingWorker.StateValue state 绑定 (bound) 属性的值。

异常摘要
UnsupportedLookAndFeelException 指示在用户系统上不存在请求的外观管理类的异常。

软件包 javax.swing 的描述

提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。有关使用这些组件的程序员指南,请参阅 Creating a GUI with JFC/Swing,该内容在 The Java Tutorial 的结尾处。有关其他参考资料,请参阅相关文档。

Swing 的线程策略
通常 Swing 不是线程安全的。除非另行说明,否则所有 Swing 组件及相关类都必须在事件调度线程上访问。
典型的 Swing 应用程序执行处理以响应用户动作所生成的事件。例如,单击 JButton 通知所有添加到 JButton 的 ActionListener。由于用户动作所生成的所有事件都在调度线程上指派,所以大部分开发人员不受该限制的影响。

但是,影响存在于构造以及显示 Swing 的应用程序中。对应用程序的 main 方法或 Applet 中方法的调用不在事件调度线程上调用。因此,构造和显示应用程序或 applet 时,必须注意要将控件转移到事件调度线程。转移控件和开始处理 Swing 的首选方法是使用 invokeLater。invokeLater 方法安排 Runnable 在事件调度线程上处理。以下两个示例都同样很好地用于转移控件和启动 Swing 应用程序:

public class MyApp implements Runnable
public void run()
// Invoked on the event dispatching thread.
// Construct and show GUI.


public static void main(String[] args)
SwingUtilities.invokeLater(new MyApp(args));


或:
public class MyApp
MyApp(String[] args)
// Invoked on the event dispatching thread. Do any initialization
// here.


public void show()
// Show the UI.


public static void main(final String[] args)
// Schedule a job for the event-dispatching thread:
// creating and showing this application's GUI.
SwingUtilities.invokeLater(new Runnable()
public void run()
new MyApp(args).show();

);


此限制也适用于连接到 Swing 组件的模型。例如,如果将 TableModel 连接到 JTable,则 TableModel 应该只在事件调度线程上进行修改。如果修改单独线程上的模型,就有遭遇异常和可能的显示损坏的风险。
由于所有事件都是在事件调度线程上传递的,所以必须注意事件处理。尤其是,在事件调度线程上执行的长运行时间任务(如网络 io 或计算密集处理)将阻塞事件调度线程调度任何其他线程。事件调度线程受阻塞时,应用程序对用户输入完全没有反应。有关处理 Swing 时执行这种处理的首选方式,请参阅 SwingWorker。

可以在 Swing tutorial 中,尤其是 How to Use Threads 一节找到关于此主题的更多信息。

相关文档
有关概述、教程、示例、指南和其他文档的信息,请参阅:

The Swing Connection
The Java Tutorial
Online Training Java Developer ConnectionSM
Java Foundation Classes (JFC) 主页追问

JTextArea JTextArea 是一个显示纯文本的多行区域。
JTextField JTextField 是一个轻量级组件,它允许编辑单行文本。
JTextPane 可以用以图形方式表示的属性来标记的文本组件。
三个的区别,如果做像word一样的编辑器,用那个比较好,还是有别的方法,说个思路,就可

参考技术B 好用,现在我正在学

使用WindowBuilder设计Swing程序

Swing程序表示Java的客户端窗体程序,除了通过手动编写代码的方式设计Swing程序之外,Eclipse中还提供了一种WindowBuilder工具,该工具是一种非常好用的Swing可视化开发工具,有了它,开发人员就可以像Visual Studio一样通过拖放组件的方式编写Swing程序了,下面对如何使用WindowBuilder开发工具设计Swing程序进行详细介绍。

A.1 下载WindowBuilder工具
下载WindowBuilder工具有两种方法,一种方法是直接下载集成WindowBuilder工具的Eclipse,另外一种是通过Install New Software安装,下面分别介绍。
? 下载集成WindowBuilder工具的Eclipse
在Eclipse官方网站的Eclipse下载页面提供了多种Eclipse工具,其中有一个“Eclipse IDE for Java Developers”选项,该项即集成了WindowBuilder工具,用户只需要根据自己的操作系统位数下载相应的版本即可,如图A.1所示。
技术分享图片
图A.1下载集成WindowBuilder工具的Eclipse

? 通过Install New Software安装WindowBuilder工具
如果用户下载的Eclipse版本不是“Eclipse IDE for Java Developers”,这时想要使用WindowBuilder工具开发Swing程序就需要手动进行安装,步骤如下:
(1)打开Eclipse,在Eclipse菜单中选择“Help/About Eclipse”菜单,如图A.2所示。
技术分享图片
图A.2 选择“Help/About Eclipse”菜单

(2)弹出“About Eclipse”对话框,该对话框中可以看到Eclipse的版本,如图A.3所示。
技术分享图片
图A.3 查看Eclipse的版本
(3)在IE浏览器的地址栏输入网址http://www.eclipse.org/windowbuilder/download.php,进入Eclipse官网的WindowBuilder下载界面,如图A.4所示。
技术分享图片
图A.4 WindowBuilder下载界面

(4)根据自己的Eclipse版本单击对应的“Release Version”下的“Update Site”中的link链接,这里选择“4.5(Mars)”版本,进入到一个空白页,复制该空白页的网址(http://download.eclipse.org/windowbuilder/WB/release/R201506241200-1/4.5/

(5)打开Eclipse,在Eclipse菜单中选择“Help/ Install New Software”菜单,如图A.5所示。
技术分享图片
图A.5 选择“Help/ Install New Software”菜单

(6)弹出Install对话框,如图A.6所示。
技术分享图片
图A.6 Install对话框

(7)在Install对话框中单击Add按钮,弹出“Add Repository”对话框,如图A.7所示,该对话框中,在Name文本框中输入要安装的插件名称WindowBuilder;Location文本框中输入WindowBuilder工具的更新地址(即步骤(4)中复制的http://download.eclipse.org/windowbuilder/WB/release/R201506241200-1/4.5/)
技术分享图片
图A.7 “Add Repository”对话框

(8)单击OK按钮,返回Install对话框,该对话框中选中WindowBuilder工具的更新内容,然后按照提示单击Next,即可将WindowBuilder工具安装到Eclipse中,如图A.8所示。
技术分享图片
图A.8 安装WindowBuilder工具

A.2 使用WindowBuilder设计窗体
为Eclipse安装完WindowBuilder工具之后,就可以使用WindowBuilder设计Swing程序了,步骤如下:

(1)新建一个Java项目,在Java项目上单击右键,选择“New/Other”快捷菜单,如图A.9所示。
技术分享图片
图A.9 选择“New/Other”快捷菜单

(2)弹出New对话框,该对话框中因此展开“WindowBuilder/Swing Designer”菜单,选中JFrame菜单项,如图A.10所示。
技术分享图片
图A.10 选中JFrame菜单项

(3)单击Next按钮,进入“New JFrame”对话框,该对话框中输入相应的包名(Package)和窗体名称(Name),如图A.11所示。
技术分享图片
图A.11 “New JFrame”对话框

注意:创建JFrame窗体时,必须依赖于某一个Java项目,即“New JFrame”对话框中的“Source folder”文本框不能为空,否则,将会出现如图A.12所示的错误提示。
技术分享图片

(4)单击Finish按钮,即可创建一个JFrame窗体。创建完的JFrame窗体的java文件中,系统会自动生成部分代码,如图A.13所示。
技术分享图片
图A.13 自动生成的JFrame窗体代码

(5)单击底部的Design选项卡,可以切换到可视化设计界面,如图A.14所示,该界面中有3个主要区域,分别是组件工具箱、窗体设计区和属性,其中,组件工具箱提供了设计Swing程序所需的布局管理器、容器和各种组件;窗体设计区主要用来对窗体进行可视化的设计;属性区域用来对窗体或者组件的相关属性进行设置,这样就省去了编写代码设置属性的过程,更加方便快捷。
技术分享图片
图A.14 JFrame可视化设计界面
(6)在可视化设计界面中,用户可以根据自己的实际需要在窗体中绘制相应的组件,并对组件的属性进行设置,绘制组件的具体操作为:在左侧“组件工具箱”选中单击要显示在窗体上的组件,然后将鼠标移动到“窗体设计区”,会显示一个带绿色原点的鼠标形状,在某个区域单击鼠标左键,即可绘制一个相应的组件,如图A.15所示。
技术分享图片
图A.15 在JFrame窗体中绘制组件

说明:创建完JFrame窗体后,默认的布局方式为BorderLayout边界布局,如果想要取消布局,可以直接在窗体设计区按Delete键删除,然后切换到.java文件(单击底部的Source选项卡),将setLayout方法的参数设置为null。

以上是关于swing 好用不的主要内容,如果未能解决你的问题,请参考以下文章

java swing怎样开发出漂亮的界面

抱怨Swagger不好用?好吧我换一个好用的

win10不好用?这些方法拯救你的电脑!

java swing画图片爱心

JUNIPER的防火墙是SSG系列的好用还是SRX系列的好用?

IntelliJ Idea 制作windows程序界面