Java 中的 Swing 框架现在是不是被淘汰了
没有淘汰,只是java的重心不是放在GUI这块,而是放在Web,移动终端设备上。
例如,GUI开发,在windows os上有C#/VB.NET,MFC,Delphi,Qt Creator这些在GUI做得比java GUI成熟。所以Sun没必要拿自己的短处与别人的长处拼,sun之所以保留它,只是为填补java在GUI这块的空白。也可以认为是凑个数罢了。
现在JAVA开发还用Swing吗
毕竟Java在web方面的地位被确立了,所以桌面上的地位可能会被影响,不过可以告诉你的是Java Swing肯定是可以做其他任何界面UI语言可做的任何事情。再说Java还可以选择SWT进行UI设计,Eclipse就是一个不错的例子。 所以不会淘汰的,现在还有人用。
Java主要应用领域分别是什么?
【导语】Java是现在社会社会上比较火的编程语言,一方面是因为语言的自我魅力,另一方面是因为应用领域比较广泛,在嵌入式领域、大数据技术、软件工具、网站应用等方面,丢可以使用,下面就给大家进行Java主要应用领域的具体介绍,一起来看看吧。
1、嵌入式领域
Java在嵌入式领域也有很大的应用。你只需要130KB就能够使用Java技术(在一块小的芯片或者传感器上),这显示了这个平台是多么的可靠。Java最初是为了嵌入式设备而设计的。
事实上,这也是Java最初的一项“立即编写,随处运行”主旨的一部分。
2、大数据技术
Hadoop和其他的大数据技术也在不同程度使用着Java,例如Apache的基于Java的Hbase,Accumulo(开源),以及ElasticSearch。
但是Java并没有占领整个领域,还有其他的大数据技术例如MongoDB就是使用C++编写的.如果Hadoopor和ElasticSearch逐渐发展,那么Java就能有潜力在大数据技术领域上得到更大的发展空间。
3、软件工具
很多有用的软件和开发工具都是运用Java编写和开发的,例如Ecilpse,InetelliJIdea和NetbansIDE.。我认为这些都是最经常使用的用Java编写的桌面应用程序。就如上面所说,Swing曾经在图形用户界面的客户端开发非常流行,它们大多数应用在金融服务领域以及投资银行。虽然现在JavaFx正在逐渐地流行起来,但仍然无法替代Swing,而且C#已经在大部分金融领域中代替了Swing。
4、网站应用
Java同样也在电子商务和网站开发上有着广泛的运用。你可以运用很多RESTfull架构,这些架构是用SpringMVC,Struts2.0和类似的框架开发出来的。
甚至简单的Servlet,JSP和Struts在各种政府项目也是备受欢迎,许多政府,医疗,保险,教育,国防和其他部门的网站都是建立在Java之上的。
5、在金融服务行业的服务器应用
Java在金融服务业有着很大应用。很多的全球性投资银行例如GoldmanSachs(高盛投资公司),Citigroup(花旗集团),Barclays(巴克莱银行),StandardCharted(英国渣打银行)和一些其他银行都用Java编写前台和后台的电子交易系统,结算、信息确认系统,数据处理项目和以及其他的项目。
Java被运用于编写服务端应用,但大多数没有前端,都是从一个服务端(上一级)接受数据,处理数据后发向其他的处理系统(下一级)。
JavaSwing由于能开发出图形用户界面的客户端供交易者使用而备受欢迎,但是现在C#正在取代Swing的市场,这让Swing倍有压力。
6、交易系统
第三方交易系统,金融服务行业的一大部分,同样也是使用Java编写的。例如像Murex这种受欢迎的交易系统,运用于与许多的银行前端链接,同样也是用Java编写的。
7、J2MEApps
虽然IOS和Android的到来几乎扼杀了J2ME的市场,但是仍然有很多的低端诺基亚和三星手机在使用着J2ME。
曾经有段时间大部分的游戏,手机应用都是利用MIDP和CLDC,或者J2ME部分平台编写的,以适用于Android系统。J2ME依然在蓝光、磁卡、机顶盒等产品中流行着。app之所以如此流行是因为对于所有的诺基亚手机,app仍然适用于J2ME。
8、高频交易领域
Java平台已经大大提高了性能特点和JITS,并且Java也拥有像C++级别的传输性能。因此,Java也流行于编写高并发系统。
虽然Java的传输性能不比C++,但你可以不用考虑Java的安全性,可移植性和可维护性等问题(Java内部已经实现好了),而且Java有着更快的运行速度。安全性等问题会使一个没有经验的C++程序员编写的应用程序变得更加缓慢和不可靠。
9、科学应用
现在Java经常是科学应用的默认选择,包括了自然语言处理。这最主要的原因是因为Java比起C++或者其他语言有更加的安全,可移植,可维护,而且Java有着更好的高级并发工具。
10、安卓Apps
如果你想知道Java应用在哪里,你离答案并不远。打开你的安卓手机或者任何的App,它们完全是用有着谷歌AndroidAPI的Java编程语言编写的,这个API和JDK非常相似。前几年安卓刚开始起步而到今日已经很多Java程序员是安卓App的开发者。
关于Java主要应用领域,就给大家介绍到这里了,希望对大家能有所帮助,如果你想进行Java编程学习,那么就需要找专业人士进行学习,一步一个脚印的学好并应用到实践中,祝大家成功!
java里的swing是什么意思,为什么取名swing
软件包 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 列表选择的默认数据模型。
DefaultSingleSelectionModel SingleSelectionModel 的一般实现。
FocusManager 从 1.4 focus API 开始,此类已被废弃。
GrayFilter 一个图像过滤器,它通过将图像转换成灰度级图像并增亮图像中的像素来“禁用”图像。
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 该组件允许用户从列表中选择一个或多个对象。
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 用来显示和编辑规则的二维单元表。
JTextArea JTextArea 是一个显示纯文本的多行区域。
JTextField JTextField 是一个轻量级组件,它允许编辑单行文本。
JTextPane 可以用以图形方式表示的属性来标记的文本组件。
JToggleButton 具有两个状态的(two-state)按钮的实现。
JToggleButton.ToggleButtonModel ToggleButton 模型 警告:此类的已序列化对象与以后的 Swing 版本不兼容。
JToolBar JToolBar 提供了一个用来显示常用的 Action 或控件的组件。
JToolBar.Separator 一个特定于工具栏的分隔符。
JToolTip 用来显示 Component 的“提示”。
JTree 将分层数据集显示为轮廓的控件。
JTree.DynamicUtilTreeNode DynamicUtilTreeNode 可以包装 vectors/hashtables/arrays/strings 并根据需要创建适当的子树节点。
JTree.EmptySelectionModel EmptySelectionModel 是一个不允许选择任何内容的 TreeSelectionModel。
JViewport 用于查看基础信息的“视口”或“观察孔”。
JWindow JWindow 是一个容器,可以显示在用户桌面上的任何位置。
KeyStroke 表示键盘或等效输入设置上的键操作的 KeyStroke。
LayoutFocusTraversalPolicy 根据 Component 的大小、位置和方向对其排序的 SortingFocusTraversalPolicy。
LookAndFeel 从可插入外观组件的角度全面展现外观的特性。
MenuSelectionManager MenuSelectionManager 拥有菜单层次结构中的选项。
OverlayLayout 要在彼此顶部安排组件的布局管理器。
Popup Popup 用于向用户显示 Component,它通常位于特定包含层次结构中所有其他 Component 的顶部。
PopupFactory 顾名思义,PopupFactory 用于获取 Popup 的实例。
ProgressMonitor 监视某个操作的进度的类。
ProgressMonitorInputStream 监视读取某些 InputStream 的进度。
RepaintManager 此类管理重绘请求,以最大限度地降低重绘次数。
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 实用方法的集合。
Timer 在指定延迟之后激发一个或多个操作事件。
ToolTipManager 管理系统中的所有 ToolTips。
TransferHandler 此类用于处理往返于 Swing 组件的 Transferable 的传输。
UIDefaults Swing 组件的默认值表。
UIDefaults.LazyInputMap LazyInputMap 将在其 createValue 方法中创建一个 InputMap。
UIDefaults.ProxyLazyValue 此类提供一个可用于延迟加载要创建实例类的 LazyValue 的实现。
UIManager 此类跟踪当前的外观及其默认设置。
UIManager.LookAndFeelInfo 为了配置菜单或为了初始应用程序设置而提供关于已安装的 LookAndFeel 的少量信息。
ViewportLayout JViewport 的默认布局管理器。
枚举摘要
JTable.PrintMode 用于打印 JTable 的打印模式。
异常摘要
UnsupportedLookAndFeelException 指示在用户系统上不存在请求的外观管理类的异常。
软件包 javax.swing 的描述
提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。有关使用这些组件的程序员指南,请参阅 Creating a GUI with JFC/Swing,该内容在《The Java Tutorial》的结尾处。有关其他参考资料,请参阅相关文档。
现实世界中哪些地方用到了Java?
1. Android 应用
如果你还在寻找 Java 在哪运用,你不用东奔西走的寻找,你的身边就是。打开的 Android 手机,随便打开一个 App 应用,他们就是完全的用 Java 语言,从 Google 上搜索 Android 的 API 文档,你就会发现它和 Java 的 JDK 文档惊人的相似。从两年前的 Android 刚刚起步,到今天许多的 Android 应用都是 Java 程序员开发者开发。虽然 Android 运用了不同的 JVM 以及不同的封装方式(这可以参考原先的文章 how Android app works ),但是代码还是用 Java 语言所编写。
2. 在金融业应用的服务器程序
Java 在金融服务业的应用非常广泛,许多跨国投资银行例如:Goldman Sachs(高盛投资),Citigroup(花旗集团),Barclays(巴克莱银行),Standard Charted(标准渣打银行)以及其他银行,都用 Java 来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。大多数情况下,Java 被用在服务器端开发,但多数没有任何前端,它们通常是从一个服务器(上一级)接收数据,处理后发向另一个处理系统(下一级处理)。Java Swing 技术旨在开发可视化界面客户端供交易者使用,但是随着近几年 C# 的崛起使程序员在客户端开发时舍弃了繁琐的代码,C# 正慢慢取代 Swing 成为可视化开发的主流。
3. 网站
同样,Java 在电子商务领域以及网站开发领域占据这大部分席位。你可以运用许多不同的框架来创建 web 项目,SpringMVC,Struts2.0 以及 frameworks。即使是简单的 servlet,jsp 和以 struts 为基础的网站在政府项目中也是很受欢迎的。例如医疗救护,保险,教育,国防以及其他的不同部门网站都是以 Java 为基础来开发的。
4. 软件工具
许多常用的软件和开发工具都是运用 Java 来编写和开发的。比如 Eclipse,IneteliJIdea 和 Netbans IDE。我认为他们去都是用 Java 来编写的。就如上面所说,Swing 曾经在可视化桌面客户端开发非常流行,它们大多数应用与金融服务领域以及投资银行,JavaFx 虽说已经得到流行,但是依然无法取代 Swing。现在 C# 已经几乎取代了 Swing 在金融开发领域的地位。
5. 交易系统
第三方交易系统,现已是金融服务产业的一个很大的部分,它们同样也是 Java 编写。例如受欢迎的交易平台 Murex ,它也是 Java 编写,并与许多的银行前台所连接,提供服务。
6. J2ME 系统
随着近几年 IOS 和 Android 的出现,几乎占据了 J2ME 市场,但仍然有低端诺基亚、三星手机使用 J2ME。这个时代的大多数手机游戏,手机应用都采用 J2ME 的一部分 MIDP 和 CLDC 编写,以适应 Android 系统。但是 J2ME 依然在蓝光,磁卡,机顶盒这些产品中流行。通信应用之所以这么火是因为 Nokia 的手机依旧支持 J2ME。
7. 嵌入式领域
Java 在嵌入式领域发展空间很大。在这个平台上,你只需 130KB 就能够使用 Java 技术(在智能卡或者传感器上)。最初,Java 被设计用来在嵌入书设备上工作。事实上,这只是其中的一个领域,这只是当初的“一次写入,随便畅游”的项目,现在看起来是这样了。
8. 大数据技术
Hadoop 以及其他大数据处理技术都是用 Java 或者其他,例如 Apache 的基于 Java 的 HBase 和 Accumulo 以及 ElasticSearchas。但是 Java 在此领域并未占太大空间,如 MongoDB 就是在 C++ 技术基础上编写的。总的来说,只要 Hadoop 和 ElasticSearchas 能够成长壮大,Java 依旧还有潜力去在这个市场占据一部分。
9. 高频交易的空间
Java 平台大幅度提高了这个平台的特性和即使编译,他同时也能够像 C++ 一样传递数据。正是由于这个原因,Java 成为的程序员编写交易平台的语言,因为虽然性能不比母语,但你可以避开它的安全性,可移植性和可维护性,以更快的速度运行,一个没有经验的 C++ 程序员会使应用程序变的更加缓慢和不可靠。
10. 科学应用
今天,Java 依然是在科学应用中最好选择,包括自然语言处理。最主要的原因是因为 Java 比 C++ 或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。
1990 年,Java 因为其 Applet 在 Internet 上相当庞大,但是随着这几年的下来,Applet 失去了其光环,最主要原因是因为各种各样的安全问题在 Applet 上出现。今天我们电脑上已经不存在桌面 Java 和 Applet。但 Java 任然是默认的软件行业的应用程序开发语言,在金融服务行业的大量使用,投资银行和电子商务应用的空间,任何一个学习 Java 的学者都有着光明的未来。Java 8 只是加强了信念,Java 将持续多年来控制软件的发展空间。