2017-01-09 49 views
0
public class Excel01 extends JFrame{ 
     public static JTable table = new JTable(); 

    public Excel01() { 
     table.addMouseListener(new MouseListener()......... 


    } 
     class PopUp extends JPopupMenu..... 
     class SharedListSelectionHandler implements ListSelectionListener 
     public static void main(String[] args) { 
     Excel01 ex = new Excel01(); 
     ObjectOutputStream oos = new ObjectOutputStream(soc.getOutputStream()); 
     oos.writeObject(obj); 

    } 

} 

我没有包含整个代码。但我会解释我做了什么。如你所见,我创建了带有JFrame扩展的类“Excel01”。ObjectOutputStream和Jtable mouseClick设置

我把这个Excel01作为Object文件。并将其发送给连接到我的服务器的客户端。我的问题是: 1.在客户端。弹出式Jtable成功了。以及服务器的数据 ,但Excel01的表格的鼠标点击事件设置在客户端不起作用。

我不太确定这个ObjectoutputStream输出是什么。如果我想发送鼠标事件,我该怎么做?

回答

1

看起来你是过自己的负担与具有什么做彼此太多的概念大幅

如果你打算做任何进展,就需要解剖这些东西进入真正的部分在里面:

  • 一个ObjectOutputStream用于 Java对象(阅读Java serialization这里)
  • 鼠标事件是相关的“信号”的UI ......还有在发送,根本没有一点一些远程服务器

换句话说:您应该退一步,先了解您打算使用的这些不同概念。然后,当您了解部件时,请尝试使用它们来解决您的问题。

看来你想告诉你的“服务器”关于客户端的事情。然后,答案是而不是给服务器“相同的UI组件”并在那里发送鼠标事件。那么答案就是明确定义客户与之交互的“数据”;以及使用此客户端可能执行的操作。

然后在客户端和服务器之间定义一个不同的协议;例如某种方式将“命令”从客户端发送到服务器。服务器接收命令并执行相关的操作。

例子:

  • 客户端启动时,它可能会问服务器“送我的数据,以显示”
  • 服务器发送数据,以有效的方式(可能只是序列化的Java名单,但也可能是别的东西)
  • 用户可与客户端,例如他改变一个行内的值
  • 客户现在可以:预验证变更
  • 发送请求到服务器“起来日期值[X,Y]”
  • 服务器回来‘是工作’或‘没有,失败’(然后客户端可以给用户一个错误消息)
+0

有没有办法送联合国相关“信号”给其他? –

+1

查看我刚刚在我的答案中提供的更新。我花了一段时间才明白你想要做什么。你做错了什么;-) – GhostCat

+0

你的协议意味着我应该向客户端发送“数据”并使用该数据执行与服务器相同的操作? –