java有啥好的gui框架知乎
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java有啥好的gui框架知乎相关的知识,希望对你有一定的参考价值。
1:java GUI框架类型一种是比较老的AWT框架,一种是新的Swing框架。awt(Abstract window toolkit)的消息机制是基于分层处理的,事件沿着层次结构沿着容器的上方传递。自从java1.1开始,java开始采用新的事件处理模型,采用委托事件模型。
2:委托事件处理
事件源与事件处理程序分开,其实就是建立一种事件源,监听器的模式,事件源就是产生消息的源头,指的是Button,Checkbox ,CheckboxGroup,Choice,List,TextArea,TextField,Menu等各种各样的空间。
监听器就是各种各样的接口,程序要处理相应的时间就必须实现这些接口。
事件处理的逻辑步骤,(1)事件源添加监听器(2)实现监听器的接口。
3:事件类型,监听器相关接口
事件 监听器
ActionEvent ActionListener
AdjustmentEvent AdjustmentListener
ComponentEvent ComponentListener
Containe rEvent ContainerListener
FocusEvent FocusListener
KeyEvent KeyListener
MouseEvent MouseListener
WindowEvent WindowListener
ItemEvent ItemListener
TextEvent TextListener
事件添加以及删除函数,形式都如下所示:
addActionListener( ) //添加监听器
removeActionListener( ) //删除监听器
每个事件监听器都有一个或者几个接口,当implements interface时必须实现所有的的监听器的接口函数,即便函数什么也不做,为了减少这种写空函数的麻烦,java为监听器中函数多于一个提供了一个适配器,适配器里面有默认的函数,需要的时候仅仅重写需要重写的函数即可,如下所示:
class MyWindowListener extends WindowAdapter
public void windowClosing(WindowEvent e)
System.exit(0);
4:applet
applet是可以在html网页中运行的程序,它在运行的时候会有安全限制,它可以不需要main函数,一个典型的applet程序如下所示:
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
public void paint(Graphics g)
g.drawString("First applet", 10, 10);
所有public类必须继承Applet类,Applet中主要的方法有 init(),start(),paint(),stop(),destroy(),
init 在程序片被创建时候调用;start在程序片进入web浏览器后调用,是在Init之后;stop是在程序片离开浏览器中的视野时关闭响应操作;destroy是在程序片不再被需要时销毁程序片。
5:常用组件类型
(1)Button 按键
public Button();public Button(String label);
(2)TextFiled 输入框
TextField();TextField(int columns);TextField(String text);TextField(String text, int columns)
(3)TextArea 文本输入区域
TextArea();TextArea(int rows,int columns);TextArea(String text);
TextArea(String text,int rows,int columns);TextArea(String text,int rows,int columns,int scrollbars);
(4)Lable 标签
Label();Label(String text);Label(String text,int alignment)
(5)Checkbox 复选框
Checkbox();Checkbox(String label);Checkbox(String label, boolean state);
Checkbox(String label, boolean state, CheckboxGroup group);
Checkbox(String label, CheckboxGroup group, boolean state);
(6)CheckboxGroup 单选按钮
CheckboxGroup()
它把Checkbox 放在一起,如下所示:
CheckboxGroup cbg = new CheckboxGroup();
add(new Checkbox("one", cbg, true));
add(new Checkbox("two", cbg, false));
add(new Checkbox("three", cbg, false));
(7)Choice 下拉列表
Choice();
点击会会出现一个下拉列表,可以向其中添加Item,如下程序所示:
Choice ColorChooser = new Choice();
ColorChooser.add("Green");
ColorChooser.add("Red");
ColorChooser.add("Blue"); 参考技术A swing有很多封装UI的框架,如果嫌弃界面不好看可以考虑用封好的ui的框架,SWT/JFace/RCP的框架相对比较成熟吧,Swing不了解,据说也很不错。
但是客户端软件还是C#的好。 参考技术B Eclipse-Sapphire Eclipse用的界面
.NET 有啥好的分布式代理/服务模型吗? [关闭]
【中文标题】.NET 有啥好的分布式代理/服务模型吗? [关闭]【英文标题】:Any good distributed agent/service models for .NET? [closed].NET 有什么好的分布式代理/服务模型吗? [关闭] 【发布时间】:2010-09-16 10:21:15 【问题描述】:我正在寻找实现分布式代理/服务模型的工具......我想我们也可以称之为网格或云计算,但我不确定这个术语是否完全类似。分布式代理模型是开发人员构建代理,然后将其分派到框架,然后框架在分布式环境中的某处执行代理。
具体来说,我正在寻找一个支持跨网格/云的动态分布的框架,但用更持久的服务替换瞬态代理。这里的目标是最大限度地减少将服务部署到网格/云容器中所需的时间和精力。
FWIW,我认为 Digipede 非常接近这一点,但我对那里的其他东西很感兴趣。我的印象是,必须考虑装配分布才能使解决方案可行。
【问题讨论】:
太糟糕了,它被关闭了。试试这些。 MPAPIMPI.NETMpiVisor我隶属于后者。 【参考方案1】:这可能有点晚了 - 但我们是 Alchemi 的开发者。我们开发了更好的框架版本来解决其局限性。
您可能想查看 Utilify 平台 (www.utilify.com) - 它在概念上类似于 Alchemi - 具有更灵活的模型。
您确实需要一个网格管理器和一个数据库 - 但是,您可以使用免费的 SQL Server Express 版本,它经过测试可以在 Windows Vista、XP、2003 上运行。
我们很乐意帮助您将 Utilify 用于您的应用程序。
问候, 克里希纳
【讨论】:
【参考方案2】:MySpace 使用 Qizmt 进行分布式 MapReduce 操作。它类似于 Java 世界中的 Hadoop。这两个项目都基于谷歌的 MapReduce。它在普通的 Windows 机器上运行,不像 Dryad 需要 Windows Server 高性能计算 (HPC)
此外,它是开源的。这很好。 http://code.google.com/p/qizmt/
【讨论】:
【参考方案3】:微软有一个名为 Dryad 的项目。这是一个很好的播客,包含更多信息: http://www.dotnetrocks.com/default.aspx?showNum=378 它使用 LINQ 并且应该易于使用。微软让它为微软的 AdCenter 做一些生产工作。 这是研究页面。 http://research.microsoft.com/research/sv/Dryad/
Dryad 很有表现力。它完全包含其他计算框架,例如 Google 的 map-reduce 或关系代数。此外,Dryad 还负责作业创建和管理、资源管理、作业监控和可视化、容错、重新执行、调度和会计。
附:我没有看到下载,但如果你联系他们并且你是认真的,你可能会得到它。
更新:现在可以在此处下载: http://research.microsoft.com/en-us/downloads/03960cab-bb92-4c5c-be23-ce51aee0792c/default.aspx
【讨论】:
【参考方案4】:来自Recursion Software 的Voyager 为多种风格的分布式架构提供了成熟的框架。
【讨论】:
voyager 无论如何都与大约十年前由 ObjectSpace 创建的名为 Voyager 的产品有关。那是一个基于 Java 的代理框架。 是的,它是一样的,当然更新/维护。在 ObjectSpace 失效之前,Recursion 从 ObjectSpace 购买了 Voyager 的权利。 Voyager 可用于 java 和 .Net。【参考方案5】:我一直在为自己的工作寻找类似的东西。到目前为止,我已经找到了 Digipede、Alchemi 和 NGrid,但它们都需要一个 SQL 数据库作为网格管理器,除了不太成熟的 NGrid。
【讨论】:
嗨,Cameron,您认为拥有网格管理器是个问题,有什么特别的原因吗?您是否希望调度、故障管理、与多台机器的通信等都在客户端上处理? - 克里希纳。 不,我只是更喜欢不使用 SQL 的经理。以上是关于java有啥好的gui框架知乎的主要内容,如果未能解决你的问题,请参考以下文章
与 Liferay 一起去还是不去?有啥好的、坏的和丑陋的? [关闭]
Spark Streaming性能测试有啥好的benchmark吗