不错,纯粹用jbuilder做是不太现实,
我以前是用jbuilder生成主的框架,细节部分都是手写的

解决方案 »

  1.   

    如你有兴趣可以用一下VisualAge for JAVA
      

  2.   

    use a great layout or a form framework is a better choice. 
    please take a look at 
    http://www.jgoodies.com/
    http://forms.dev.java.net/
    i like all write by hand.
      

  3.   

    Eclipse is good kit for java!just do it
      

  4.   

    如果想生成可读性强的代码,我建议最好还是自己写代码。
    用这些GUI的设计工具生成的代码确实比较难读。
      

  5.   

    刚开始用JB写UI时觉得它生成的代码太累赘了,不过一直用到
    现在发现其实根本没有必要去经常看那些代码,只要你控件命名比较规范
    可读性不是问题,毕竟项目中效率第一.
      

  6.   

    同意 wolfsquare.
    不过用Swing开发图形界面真是一场恶梦啊.....
      

  7.   

    强烈推荐NetBeansIDE 3.4或Forte for java.分别在www.netbeans.org和www.sun.com上有下载.告诉我你的邮箱,我把我做的swing界面给你看看,用netBeans做的.
    楼上的我不大同意那是"一场恶梦",要看是使用什么工具了,用JB那才真是一场恶梦
      

  8.   

    以下是用netBeans生成的的JFrame代码,大家看看吧:
    /*
     * test.java
     *
     * Created on 2003年6月11日, 下午9:27
     */package com.Sky.yunjiu.main;import javax.swing.JInternalFrame;
    import javax.swing.plaf.basic.BasicInternalFrameUI;
    import javax.swing.JComponent;
    import java.awt.Color;
    import javax.swing.BorderFactory;
    import javax.swing.JDesktopPane;/**
     *
     * @author  sky
     */
    public class test extends javax.swing.JFrame
    {
        
        /** Creates new form test */
        ItfWastPane wp;
        InternalFrameUI ifu;    public test ()
        {
            initComponents ();
            ItfNEastPane neastPane = new ItfNEastPane();     
            InfoPaneTitleBarUI neast = new InfoPaneTitleBarUI(neastPane);
            neastPane.setUI (neast);
            p1.add(neastPane, JDesktopPane.MODAL_LAYER); 
            neastPane.setVisible(true);
            neastPane.setLocation (0,0);
        }
        
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        private void initComponents()
        {
            p1 = new javax.swing.JDesktopPane();
            jButton1 = new javax.swing.JButton();
            lb = new javax.swing.JLabel();
            cb = new javax.swing.JComboBox();        getContentPane().setLayout(null);        addWindowListener(new java.awt.event.WindowAdapter()
            {
                public void windowOpened(java.awt.event.WindowEvent evt)
                {
                    formWindowOpened(evt);
                }
                public void windowClosing(java.awt.event.WindowEvent evt)
                {
                    exitForm(evt);
                }
            });        getContentPane().add(p1);
            p1.setBounds(0, 0, 570, 340);        jButton1.setText("jButton1");
            jButton1.addActionListener(new java.awt.event.ActionListener()
            {
                public void actionPerformed(java.awt.event.ActionEvent evt)
                {
                    jButton1ActionPerformed(evt);
                }
            });        getContentPane().add(jButton1);
            jButton1.setBounds(60, 400, 83, 28);        pack();
            java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
            setSize(new java.awt.Dimension(570, 445));
            setLocation((screenSize.width-570)/2,(screenSize.height-445)/2);
        }    private void formWindowOpened (java.awt.event.WindowEvent evt)
        {    }    private void jButton1ActionPerformed (java.awt.event.ActionEvent evt)
        {    }
        
        /** Exit the Application */
        private void exitForm (java.awt.event.WindowEvent evt)
        {
            System.exit (0);
        }
        
        /**
         * @param args the command line arguments
         */
        public static void main (String args[])
        {
           // System.out.println(javax.swing.UIManager.getString("InternalFrameTitlePane.sizeButtonText"));
            new test ().show ();
        }
        
        
        // Variables declaration - do not modify
        private javax.swing.JButton jButton1;
        private javax.swing.JDesktopPane p1;
        private javax.swing.JLabel lb;
        private javax.swing.JComboBox cb;
        // End of variables declaration
       
    }在该环境下一目了然,不信可下载来试试.免费的啊-:)
      

  9.   

    楼上的,给我看看你做的界面吧
    [email protected]
      

  10.   

    建议有兴趣的看看SWT,eclipse开发的,用来替代swing 和awt的,很不错,效率很高的
      

  11.   

    ngk2030(天箭) 谢谢你,也谢谢大家!我的信箱:[email protected]
      

  12.   

    呵呵,居然说用JB做UI是一场噩梦,要知道当初它的卖点之一就是做UI了,
    找到窍门做UI小菜啊 :) ,
      

  13.   

    wolfsquare(狼平方)你能用JB做出Mac风格的界面吗?JB能够实时的加背景吗?JB生成的界面美观吗?JB在不改变当前的设置知道一个事件不会生成一个类吗?答案全是否.呵呵,菜!等等就知道了,还有人说JB的UI是卖点,笑话!如果中国所有java程序员用JB开发UI,不知道还会有多少人误解Java做界面难看了!狼兄不妨用netBeans来试试和JB来比较一下.我的E-mail:[email protected]
      

  14.   

    我也觉得用JB做出来的界面,代码太乱了。不利于程序的修改和添加!eclipse要装插件才能用啊,这就很糟了。做项目一切都以客户要求为主,没办法!
      

  15.   

    以前没有用过netBeans,刚才装了一个试用,可能习惯了JB,刚开始还找不着北,还好慢慢习惯了.创建了一个普通的JFrame试了一下,随便拖了个按钮上去,鼠标指针在整个过程没有变化,
    然后又想设置按钮大小,找了老半天没找到,放弃,然后又将刚才的按钮所在Panele 的Layout为Null,按钮消失后在控件列表中点击该按钮,界面一点反应也没有,而JB会显示出按钮的可拖动边框...感觉易用性和直观性稍差.至于Mac界面似乎是Look&Feel范畴了,实时加背景在项目进行中也没大用.生成的界面美观与否
    更要看设计者的素质.到了生成类的问题比较简单,在事件较多的界面中维护那么多的类就是一场恶梦. 以上观点敬请指正,由于时间不多没有来得及体会Netbean的优点还请见谅.
      

  16.   

    以上的问题是这样的,一、刚开始是netBeans默认一JFrame的布局是BorderLayout,只要生成一个界面后设置其Layout为Null和JB拉一个按钮是一样的 二、按钮的大小可以成批的设置,Ctrl不连续选,Shift连续选,其大小和位置可以对象浏览窗口中选择Layout来设置,如果当前布局不是null,那么各控件的大小可通过<其它属性>框来设置。这时Netbeans就好像VB一样的好用
      

  17.   

    在这里有一个区别:netbeans是点了一相控件后再在界面点一下绘制一个控件,也可在点的同时按Shift键就可以同时生成多个相同控件,而JB是拖的。哈哈我就不喜欢拖,太麻烦了。要知道一个界面上的Text框多了,不累死才怪
      

  18.   

    看了SUN官方的Swing的例子就不再想用什么工具实现了,
      

  19.   

    to:ngk2030(天箭)
    JB也可以用点的,你没试过吗??点在左下角的控件列表栏里。
    呵呵不过去试用了一下netbeans,觉得是比较好,以后有不懂的要教我啊。
      

  20.   

    ngk2030(天箭) 你好,我的课题中有一部分需要开发图形界面,我也用netbeans,给我参考一下你的,先谢谢你!我的信箱:[email protected]
      

  21.   

    在开了一个Frame后加了一个按钮然后设置为Null Layout,界面上
    按钮直接就不见了,且从控件列表选中也看不见。
        另外我们做UI是很复杂的,一般都是用XYLayout来做界面雏形,然
    后转为GridbagLayout再做精细调整,如果象上面这种情形就很困难了。
        还有就是控件对齐功能,这点JB还是很体贴的。
        不知道netbean还有什么体贴的特性?
      

  22.   

    就JAVA开发工具领域来说,JBuilder做界面效率还可以,效果也不错,我这里有很多JBuilder+Swing设计的很酷的界面,你看到后一定会大吃一惊,原来JAVA也可以做这样的界面啊!
      

  23.   

    to: zyymmm
    其实jb做界面还可以,不过我不喜欢它生成的代码,太乱!你觉得呢?
      

  24.   

    to:——zyymmm(为成为VC高手而奋斗) 可以给我发一些你的界面吗?我的信箱是:[email protected].非常感谢!
      

  25.   

    又要跨平台,又要界面好看,不行吧。
    Delphi 界面好看是与具体的平台有关。