锁定老帖子 主题:swing开发的系统
精华帖 (10) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (5)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-05
GH0769 写道 GUI栏位的布局部分: 其实我定义了数据库表中的一列是否要显示,显示的 高,宽后直接使用通用生成函数生成详细信息。当然对于个别比较复杂的界面,那么需要硬代码来定义GUI布局。不过大部分窗口都可以通用定义。详细信息窗口全部使用gridbaglayout布局管理器 其实我说的就是那种详细信息窗口,有很多栏位的那种表单窗口,这种画面一般都需要人为设计布局,这种情况下就是NetBeans可视化设计器发挥作用的地方了。比如你用gridbaglayout来布局,所以应该是手写的吧,我不知道你的软件里面这种详细信息画面有多少,否则写这种布局代码终究是无聊和繁琐,所以可视化设计器我认为是很必要的。 |
|
返回顶楼 | |
发表时间:2010-04-05
使用FileMap等原理都是一样的,无非就是通过后台的定义表现数据库表的列的信息,然后前台会根据这些列的信息来生成界面。所以你的思路应该是可以的。只是大家的集成的方式不一样。
|
|
返回顶楼 | |
发表时间:2010-04-05
最后修改:2010-04-05
godfish 写道 这和Delphi、VB来做有什么区别
我想最重要的区别可能就是跨平台吧,另外从设计上来说Swing设计的比较好,Swing应该说一个比较现代的GUI框架,作为一种强类型语言写成的GUI库,已经设计非常好了。微软平台要到.Net WinForm2.0之后才算和Swing差不多,WinForm2.0 MFC的影子已经很少了,也算比较充分利用C#重新设计的一个现代OO的GUI库了,当然微软平台现在已经有WPF了,这个更好,不过在XP平台上也许还是WinForm更佳。 |
|
返回顶楼 | |
发表时间:2010-04-05
我到觉得使用代码要比NetBeans等可视化的工具爽的多,应该使用这些工具是你的代码变得凌乱,并且我的控件不是直接使用swing的控件,而是在swing控件的基础上扩展了,那么想让这些你扩展的控件出现在NetBeans的空间集上的话,是不是需要额外的开发?如果我现在使用代码的话,基本都是按照模板来的,大致都一样:
//定义控件 type = new JdbComboBox(detailMSet, "type"); rec = new JdbComboBox(detailMSet, "rec"); title = new JdbTextField(detailMSet, "title"); ExGridLayout layout = new ExGridLayout();//封装布局管理器 //定义布局的面板 JPanel centerPanel = new JPanel(); centerPanel.setLayout(new GridBagLayout());//使用GridBagLayout //控件的标签 centerPanel.add(new JdbLabel(title), layout.getGridBagConstraints(0, 0, 1, 1, 0)); //控件本身 centerPanel.add(title, layout.getGridBagConstraints(1, 0, 5, 1, 0)); centerPanel.add(new JdbLabel(type), layout.getGridBagConstraints(0, 1, 1, 1, 0)); centerPanel.add(type, layout.getGridBagConstraints(1, 1, 1, 1, 1)); centerPanel.add(new JdbLabel(rec), layout.getGridBagConstraints(0, 9, 1, 1, 0)); centerPanel.add(rec, layout.getGridBagConstraints(1, 9, 1, 1, 1)); 这些控件的代码都是比较简单的,只需要定义1, 9, 1, 1, 1这些数字就行了,分别代表要显示在第一行,第几列,跨越多少行,多少列,是否是根据窗口大小而自动填充等。 |
|
返回顶楼 | |
发表时间:2010-04-05
我觉得GUI开发走向更方便之路就是声明式,如果大家看过JavaFX的话,就会发现JavaFX脚本语言非常方便,它在语言级别上直接支持绑定,绑定对于GUI开发来说是一个非常重要的东西,如果这个东西强大,那么将非常方便。不然的话手动写大量命令式的事件代码也是非常繁琐的。
|
|
返回顶楼 | |
发表时间:2010-04-05
可以给一个具体的例子吗?毕竟很多跟你开发的系统的架构是联系在一起的,能否跟现有的系统集成比较关键,好像很多swing的插件,我们拿过来根本无法使用,必须要修改然后才能集成。
|
|
返回顶楼 | |
发表时间:2010-04-05
GH0769 写道 我到觉得使用代码要比NetBeans等可视化的工具爽的多,应该使用这些工具是你的代码变得凌乱,并且我的控件不是直接使用swing的控件,而是在swing控件的基础上扩展了,那么想让这些你扩展的控件出现在NetBeans的空间集上的话,是不是需要额外的开发?如果我现在使用代码的话,基本都是按照模板来的,大致都一样:
//定义控件 type = new JdbComboBox(detailMSet, "type"); rec = new JdbComboBox(detailMSet, "rec"); title = new JdbTextField(detailMSet, "title"); ExGridLayout layout = new ExGridLayout();//封装布局管理器 //定义布局的面板 JPanel centerPanel = new JPanel(); centerPanel.setLayout(new GridBagLayout());//使用GridBagLayout //控件的标签 centerPanel.add(new JdbLabel(title), layout.getGridBagConstraints(0, 0, 1, 1, 0)); //控件本身 centerPanel.add(title, layout.getGridBagConstraints(1, 0, 5, 1, 0)); centerPanel.add(new JdbLabel(type), layout.getGridBagConstraints(0, 1, 1, 1, 0)); centerPanel.add(type, layout.getGridBagConstraints(1, 1, 1, 1, 1)); centerPanel.add(new JdbLabel(rec), layout.getGridBagConstraints(0, 9, 1, 1, 0)); centerPanel.add(rec, layout.getGridBagConstraints(1, 9, 1, 1, 1)); 这些控件的代码都是比较简单的,只需要定义1, 9, 1, 1, 1这些数字就行了,分别代表要显示在第一行,第几列,跨越多少行,多少列,是否是根据窗口大小而自动填充等。 比如你//控件本身下的代码,现在栏位比较少,就是4到5行代码,如果是几十个栏位,就要写很多,而且还要注意GridBagConstraints里面的参数。 这些通过NetBeans设计器都可以省心掉了,我一般不会看netbeans生成的那个initComponent()函数。 另外你自己的组件很容易就可以加到NetBeans的工具集上的,不需要什么额外的开发。 |
|
返回顶楼 | |
发表时间:2010-04-05
我觉得你可以下一个NetBeans下来先玩一下,现在最新版是6.8版本,已经各方面都不错了,以前NetBeans虽然有好的可视化设计器,但是其他方面比Eclipse差,所以也很不爽,现在发展的已经不错了。
|
|
返回顶楼 | |
发表时间:2010-04-05
也没错,不过我还是希望我的代码简洁有序,成规律性。不过我没有使用过netbeans,不知道具体的他生成的代码是怎么样的。我试图把我的系统转移到netbeans上编译时,速度慢的惊人,并且外观,字体,快捷键,速度等方面还是觉得eclipse好很多。
|
|
返回顶楼 | |
发表时间:2010-04-06
说实在的 习惯了eclipse。
|
|
返回顶楼 | |