Swing中的Jtable中要輸入值,如果用方向鍵控制的話,要按兩下才能輸入進去    jctable也一樣,這個問題在加cellEditor的時候也會出現,把某個cell變成combobox或者JtextField的時候 都要點兩下才能進行想要的操作,   有沒有人知道這個怎么解決   還是Swing就是有這樣的一個小瑕疵?   謝謝

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【horizonlyhw】截止到2008-07-28 15:40:41的历史汇总数据(不包括此帖):
    发帖的总数量:17                       发帖的总分数:1010                     每贴平均分数:59                       
    回帖的总数量:134                      得分贴总数量:63                       回帖的得分率:47%                      
    结贴的总数量:17                       结贴的总分数:1010                     
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    不是的,你理解错了!第一下是点选所在行,第二下才是进入cell的编辑状态! 你认为这样不好的话,也可以改成点击一下就进入编辑,但新的问题又会出来,你测试下就明白啦!
      

  3.   

    怎么一下就進入編輯狀態呢   ?  會出現什么問題 ~
    我感覺像excel那樣就好啊~ 
      

  4.   

    Excel点一下鼠标是选择单元格,双击才是编辑,呵呵
      

  5.   

    你参看DefaultCellEditor元代码就知道了! 要更改的话,只要覆盖源码的方法就OK!
      

  6.   

    那jtable能不能實現像excel那樣~  ?
      

  7.   


    DefaultTableModel dtm = new DefaultTableModel(col, 0) {
            public boolean isCellEditable(int rowindex, int columnindex) {
                return true;//单元格能被编辑,false则不能
            }
    };
    JTable jt = new JTable(dtm);private void addListener() {
            jt.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                    jtChick(e);
                }
            });
    }private void jtChick(MouseEvent e){
            int row = jt.rowAtPoint(e.getPoint());
            int col = jt.columnAtPoint()
            dtm.setValueAt("你要设置的值",row,col);
    }
      

  8.   


    public static void setEditing(JTable tb) {
        int selectingrow = tb.getSelectedRow();
        int selectingcol = tb.getSelectedColumn();
        if (selectingrow < 0 ||selectingcol<0)
          return;    if (!tb.isCellEditable(row,col))
          return;    JTextField jText = (JTextField) ( (DefaultCellEditor) tb.getCellEditor(row,col)).getComponent();
        jText.requestFocus();
        jText.selectAll();
    }
      

  9.   

    呵呵,JTable有一个方法设置成true就可以了.就不用双击后才能进行编辑了.setSurrendersFocusOnKeystroke(true); //键击导致编辑器被激活时编辑器应该获得焦点setSurrendersFocusOnKeystroke
    public void setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)设置由于 JTable 为某个单元格转发键盘事件而导致编辑器被激活时,此 JTable 中的编辑器是否获得键盘焦点。默认情况下,此属性为 false,且 JTable 保留焦点,除非单击了单元格。 参数:
    surrendersFocusOnKeystroke - 如果在键击导致编辑器被激活时编辑器应该获得焦点,则为 true
      

  10.   

    setSurrendersFocusOnKeystroke    jtable有這個方法么??
      

  11.   

    定14楼的建议设表格的编辑器设成textfiled然后再给textfiled设上监听就可以了