`
carlkkx
  • 浏览: 16473 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
文章列表
    说到GUI类库的重用有一个很著名的模式:Composite模式。对,一个现代面向对象GUI类库基本上都有这个模式的实现,当然也包括swing.不过早一点如MFC就没有完整的实现,现在来看如果一个GUI类库连基本的Composite模式都没有实现基本上感觉是出土的文物啦!    但是我们来看即便有了Composite模式,但Composite模式通常是构建静态组合,如果要动态的替换一个复合组件内部的子元素如何办呢?如此一来这个组件就只能定义自己的布局形式,而不能定死在这个布局形式内的元素。    其实从用户角度来说一个GUI元素通常就是两种情况:要么就是表现,要么就是处于和用户交互状态 ...
我们来看一个JavaBean class Bond{ private String id; private String name; public void setId(String id){ this.id = id; } public String getId(){ return this.id; } public void setName(String name){ this.name = name; } public String getName(){ return this.name; } 然后我们来看 ...
    有一次看.NET平台的WinForm发现其有提供捕捉这样异常的方法,升至它有默认的异常处理。 但是在Swing中,如果某事件处理函数抛出了一个异常,很可能导致事件线程挂掉,这时候界面点击无反应, 软件甚至要通过强行关闭才能退出。如果在某顶层做一个最后防御,这样哪个事件处理模块如果抛出未处理异常, 也不至于程序莫名的挂掉,顶多输出一个信息告知用户系统错误,我要挂了,然后退出。 但是我找了一下不知Swing在什么地方可以捕获异常。不知道大家是如何处理这个问题的。
有时候一个Swing画面,是由多个嵌套的面板构成的,但是它们里面的各种栏位的关系却是紧密的。这时候希望将各种处理代码写在最顶层的画面中,但是又无法访问子面板中各栏位的引用,必须又要为子面板添加类似get,set之类的访问函数,有些麻烦。 有了SwingSelector可以这样: new SwingSelector(panel, "JTextField").bindEvent("action", new ActionListener() { public void actionPerformed(ActionEvent e ...
   传统开发web的人似乎不认同这种框架,认为web开发不应该基于这样的编程模型。但是我觉得只要人机交互稍复杂一点,对交互做基于组件的事件抽象我觉得是很理所当然的,事实上我不觉得我们已经找到了关于这一问题域的更好的抽象。当今现实的GUI框架也几乎都是这样抽象的,然后由于web本身的交互模式并不是如此,但是web承载的东西越来越多,web已经不再是请求响应page而已,它越来越像Application,交互越来越复杂。于是很多人努力将事件模型引入web开发,但是底层机制不改变,由于底层机制与上层事件模型差异较大,要优雅的封装起来不容易,不过人们的努力还是有成果,在java领域也有这样的框架,如: ...
我们知道java有5种逻辑字体,分别是 Serif、Sanserif、Monospace、Dialog 以及 DialogInput。当你在程序中比如 UIDefaults ui = UIManager.getLookAndFeelDefaults(); ui.put("TextArea.font", new FontUIResource("DialogInput", Font.BOLD, 14));   这样你对所有TextArea默认的字体设置成DialogInput了,但是DialogInput到底对应什么字体呢?这就取决于你的程序所在JRE ...
Global site tag (gtag.js) - Google Analytics