getComponentCount();
getComponent(int index);
instanceof

解决方案 »

  1.   

    哥们,我基本做到了,非常谢谢,各位如果有兴趣得,可以讨论,,就是
    怎么修改verticalFlowLayout的hgap,vgap不管用,,,不管如何,,新添加的东西都不能放的很紧凑!!!如何。。
      

  2.   

    不会啊,
        verticalFlowLayout1.setHgap(0);
        verticalFlowLayout1.setVgap(0);
      

  3.   

    第一次没仔细看,功能给你完成就好了,从今天你的问题来看,根本没必要贴那么多JPanel、JTextField、JCheckBox、JComboBox,一个JTable应该可以搞定,呵呵,顶多再使用几个TableCellEditor,而且界面上控件太多会严重占用资源。不过你现在已经做到这样了,让你改估计一时半会也改不过来了。
    就不打击你了
      

  4.   

    代码给大家::可是请大家帮我想想,怎样动态帮定事件(比如点击jcheckbox),,,还有界面控制我始终不可以。。
    private void create_panel(int n){
        for (int i=1;i<=n;i++){
          JPanel jPanel_add = new JPanel();
          JTextField jTextField_zdcd_dec = new JTextField();
          JTextField jTextField_jldw = new JTextField();
          JTextField jTextField_zddy = new JTextField();
          JTextField jTextField_fortable_old_zdm = new JTextField();
          JTextField jTextField_old_zdm= new JTextField();
          JTextField jTextField_zdcd = new JTextField();
          JComboBox jComboBox_szlx = new JComboBox();
          JTextField jTextField_xsxh = new JTextField();
          JCheckBox jcheckbox_del = new JCheckBox();
          JCheckBox jcheckbox_edit = new JCheckBox();
          JTextField jTextField_zdm = new JTextField();
          jPanel_dbgrid.add(jPanel_add, new XYConstraints(220, 5, -1, -1));
          //
          jPanel_add.add(jcheckbox_edit,0);
          jPanel_add.add(jTextField_zdm,1);
          jPanel_add.add(jTextField_zddy,2);
          jPanel_add.add(jTextField_jldw,3);
          jPanel_add.add(jComboBox_szlx,4);
          jPanel_add.add(jTextField_zdcd,5);
          jPanel_add.add(jTextField_zdcd_dec,6);
          jPanel_add.add(jTextField_xsxh,7);
          jPanel_add.add(jcheckbox_del,8);
          jPanel_add.add(jTextField_old_zdm,9);
          jPanel_add.add(jTextField_fortable_old_zdm,10);
          jTextField_fortable_old_zdm.setVisible(false);
          jTextField_old_zdm.setVisible(false);
          //
          jTextField_zdcd_dec.setColumns(7);
          jTextField_jldw.setColumns(7);
          jTextField_zddy.setColumns(7);
          jTextField_fortable_old_zdm.setColumns(7);
          jTextField_old_zdm.setColumns(7);
          jTextField_zdcd.setColumns(7);
          jTextField_zdm.setColumns(7);
          jComboBox_szlx.addItem("字符型");
          jComboBox_szlx.addItem("数值型");
          jComboBox_szlx.addItem("日期型");
    //      jComboBox_szlx
          jTextField_xsxh.setColumns(8);
          jPanel_add.setVisible(false);
          jPanel_add.setVisible(true);
          verticalFlowLayout1.setHgap(-6);/////////////////?????如何控制界面::
          verticalFlowLayout1.setVgap(-6);
        }
      }
    1。怎样动态帮定事件(比如点击jcheckbox),,
    2。 界面控制我始终不可以。。verticalFlowLayout1.setHgap(-6)不管用。。大家看有没有改进的办法!!
      

  5.   

    监听事件可以如下:
    jcheckbox.addActionListener(new b());public   class b implements ActionListener{
        public void actionPerformed(ActionEvent e){
          System.out.println("ok!");
        }
      }
    关键是如何知道是选中的那个,,,因为我需要传递参数。各位给给高见!!
      

  6.   

    1、利用JCheckBox中你用不到的属性。如
    jcheckbox_del.setName("del");
    jcheckbox_edit.setName("edit");
    public   class b implements ActionListener{
        public void actionPerformed(ActionEvent e){
          jCheckBox_actionPerformed(e);
        }
      }
    public void jCheckBox_actionPerformed(ActionEvent e){
        if(CheckBox)e.getSource()).getName().equals("del"))
        //del处理
        else if(CheckBox)e.getSource()).getName().equals("edit"))
        //edit
    }
    2、自己封装一个JCheckBox用。
      

  7.   

    有点味道,,但是我想了好久,,好像不可以,其实我是想在“编辑”中取出数据,而不是就简单的做del.insert,,取出当然数据
    代码如下:
    JButton jButton = new JButton("编辑");
    jButton.addActionListener(new b());public   class b implements ActionListener{
        public void actionPerformed(ActionEvent e){
          //取出当前这个“编辑”按钮的jpanel的一个jTextField一个值,(一定是当前!)
          //我如下做。
          for(int i=0;i<comCount;i++){
               System.out.println("ok!"+comCount+"!"+((JTextField)((JPanel)allCom[i]).getComponent(1)).getText());
             }
        }
      }
    可是每次都只能取出第一个,,我调试了没有初始化,然后我又添加
     test dtini=new test();
             dtini.date_ini();//这个方法是我取数据入allCom[i])的。。
    我发觉这个事件是在程序开始就执行的,所有初始化不管用,它不是取我这个时候的jpanel...是不是这个道理!!!
      

  8.   

    class b implements ActionListener{
           public void actionPerformed(ActionEvent e){
             jbutton_actionPerformed(e);
           }
         }     public void jbutton_actionPerformed(ActionEvent e){
           this.date_ini();
           for(int i=0;i<comCount;i++){
               System.out.println("ok!"+comCount+"!"+((JTextField)((JPanel)allCom[i]).getComponent(1)).getText());
             }
         }可以取出全部数据,,,不能取出当前的数据,就是怎么知道是当前啊
      

  9.   

    首先verticalFlowLayout1.setHgap(0);verticalFlowLayout1.setVgap(0);就是紧凑格式,设成负值没用,至于为什么还有空,那是因为你使用了太多的控件重叠,控件的边框是要占地方的。其次,你的comCount我不知道怎么来的,如果记录的是你界面上JPanel的数量的话,那每增加JPanel时都要更新。跟初始化没关系。
      

  10.   

    public void jbutton_actionPerformed(ActionEvent e){
           this.date_ini();
           for(int i=0;i<comCount;i++){
             if ( ((JButton)((JPanel)allCom[i]).getComponent(11)).isSelected()){
               System.out.println("ok!"+comCount+"!"+((JTextField)((JPanel)allCom[i]).getComponent(1)).getText());
             }
           }
         }居然说我没有被选中的,,,,如何知道当前这个按钮被选中。。估计快了非常谢谢。。等,加分
    如果大家需要分数向我申请。。一定给!!
      

  11.   

    还有,如果你的JButton是在当前JPanel上,可以用jPanel.getParent();取父容器然后getComponentCount();如果JButton是在上级JPanel上,就需要取焦点或使用属性标志当前行了。
      

  12.   

    if ( ((JButton)((JPanel)allCom[i]).getComponent(11)).hasFocus()){
               System.out.println("ok!"+comCount+"!"+((JTextField)((JPanel)allCom[i]).getComponent(1)).getText());
             }搞定!!!太谢谢了,,,真的,: relive(六道轮回,无想转生)非常谢谢啊!!!!!
    就是verticalFlowLayout1.setHgap(0);verticalFlowLayout1.setVgap(0);我试一试,现在这个界面不好看。。我用的是verticalFlowLayout,然后在上面加jpanel的。jpanel是默认的,所有间隔很大,是什么原因。??
    接分。。如果又需要分数的,到论坛给我申请。加!!!!!!!!!!
    忘记了,谢谢你:relive,(必须想转生,因为我们需要你^_^)
      

  13.   

    isSelected()
    Faint,只有JToggleButton和JRadioButton可以使用这个属性
    估计你是想用hasFocus()吧。