- 浏览: 16473 次
- 性别:
- 来自: 上海
最新评论
-
zeronelee:
系统托盘我也遇到过,一直没有解决。
javaGUI字体讨论 -
black_zerg:
要能和jquery一样简单就好了
借鉴CSS选择器的思路写了一个SwingSelector -
lifetruth:
个人也是赞同楼主的做法。FieldMap比DTO优越,本质是控 ...
JavaBean和FieldMap 静态定义和动态构建孰优孰劣? -
steeven:
我的裸奔界面生成可不能用你这玩意, annotation没地方 ...
JavaBean和FieldMap 静态定义和动态构建孰优孰劣? -
steeven:
你看看这好好的OO语言被你糟蹋的, 成了脚本语言啦.
这个玩意 ...
JavaBean和FieldMap 静态定义和动态构建孰优孰劣?
文章列表
说到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 ...