没有作过,不过给你一个想法(不知道对不对)
设置2个booloean变量
当鼠标移出JTable区域时,一个变为true,click时另一个也变为true,这时应该就可以处理了~~~~

解决方案 »

  1.   

    楼上的想法倒是不错。
    但怎么判断鼠标已经移出了JTable区域了呢?应该不鼠标事件鉴听放到那个组件上呢?
      

  2.   

    A JTable is a JComponent, a JComponent is a Container, a Container is a Component, and all Components can add MouseListeners.addMouseListener(new MouseAdapter(){
       public void mouseExited(MouseEvent e){
          ......
       }
    });
      

  3.   

    应当
    1\JTable的容器进行监听 当鼠标移出jtable 并且鼠标click一下,就要触发容器的事件.如下:package myprojects.demomouse;import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class Demomouse extends JFrame {

    JTextField jl=new JTextField("this is a test");
    boolean flag=false;

    public Demomouse() {
    Container con=this.getContentPane();
    con.setLayout(new BorderLayout());
    con.add(jl,BorderLayout.NORTH);
    jl.addMouseMotionListener(new MouseMotionListener()
    {
    public void mouseDragged(MouseEvent e)
    {
    Point p=e.getPoint();
    if(!jl.contains(p))    flag=true;
    } public  void mouseMoved(MouseEvent e)
    {   jl.setText("mouse is contains in label or mouse is not press");
      jl.repaint();
    }
    });

    con.addMouseListener(new MouseAdapter()
    {
    public void mouseClicked(MouseEvent e) 
    {
    Point p=e.getPoint();
    if(!jl.contains(p))    flag=true;
    else flag=false;
    if(flag) jl.setText("lost focus and mouse out");
      else     jl.setText("mouse is contains in label or mouse is not press");
      jl.repaint();

    }
    });

    } public static void main(String args[]) {
    System.out.println("Starting Demomouse...");
    Demomouse mainFrame = new Demomouse();
    mainFrame.setSize(400, 400);
    mainFrame.setTitle("Demomouse");
    mainFrame.setVisible(true);
    }
    }
      

  4.   

    楼上的绝对不是个好主意,而且His pigeon English is so poor.
    我已经说过了,鼠标移出任何一个控件的事件是java.awt.event.MouseListener
    的public void mouseExited(MouseEvent e),(移入是mouseEntered)
    对你的jtable addMouseListener 一个监听 mouseExited的MouseListener,
    对你的jtable的父容器,或整个窗口addMouseListener一个监听mouseClicked的MouseListener, 两个都true就可以了
      

  5.   

    谢谢楼上的各位。。
    其实,我做的东东是这样的。在一个JFrame里的左边是JTree,右边是一个JTable,点中一个JTable的单元格编辑其内容后,再点到JTree的叶子上,想让表格的单元格停止编辑。。就这么简单。。
    本来想在表格单元格里加焦点监听,即单元格失去焦点后,立即结束编辑。。
    另外一个思路就是我贴的帖子。。不知道大家怎么解决?
      

  6.   

    点击树的叶子时,调用表格的editstopping,就可以了把
      

  7.   

    那还有其他呢,比如点击了toobar上的按纽呢,去触发editstopping。。假如上面有n个组件,要我一个一个去通知么?