【问题标题】:ObjectOutputStream and Jtable mouseClick settingObjectOutputStream 和 Jtable mouseClick 设置
【发布时间】:2017-05-23 22:02:15
【问题描述】:
 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”类。

我把这个 Excel01 作为对象文件。并将其发送给连接到我的服务器的客户端。

我的问题是 1. 在客户端。弹出Jtable成功。还有服务器的数据 但是 Excel01 的表格的鼠标点击事件设置在客户端不起作用。

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

【问题讨论】:

    标签: java swing io jtable objectoutputstream


    【解决方案1】:

    看起来你用太多彼此无关的概念来过度负担自己。

    如果您打算取得任何进展,则需要将这些东西剖析到其中的真实部分:

    • ObjectOutputStream 用于写入 java 对象(在此处阅读Java serialization
    • 鼠标事件是一个与 UI 相关的“信号”...发送 那个 到某个远程服务器根本没有意义

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

    您似乎想告诉您的“服务器”有关客户端所做的事情。那么答案是给服务器“相同的 UI 组件”并在那里发送鼠标事件。那么答案就是明确定义客户端正在与之交互的“数据”;以及可以使用此客户端执行的潜在操作。

    然后你在客户端和服务器之间定义一个独特的协议;例如从客户端向服务器发送“命令”的某种方式。服务器接收命令,并对此进行处理。

    例子:

    • 当您的客户端启动时,它可能会要求服务器“向我发送要显示的数据”
    • 服务器以有效的方式发送该数据(可以只是序列化的 java 列表,但也可以是其他东西)
    • 用户与客户合作,例如他更改了一行中的值
    • 客户现在可以:预先验证更改
    • 向服务器“更新值[x,y]”发送请求
    • 服务器返回“是的工作”或“否,失败”(然后客户端可以给用户一个错误消息)

    【讨论】:

    • 有没有办法将联合国相关的“信号”发送给其他人?
    • 查看我刚刚在答案中添加的更新。我花了一段时间才明白你想做什么。而你做错了;-)
    • 您的协议意味着我应该向客户端发送“数据”并使用该数据执行与服务器相同的操作?
    • 我的意思是:发送 JFrames 听起来不是一个好主意。当然:某些工作是在客户端完成的。又要更新我的答案了……给我两分钟。
    • 是的,我不确定“ObjectStream”到底发送了什么。我猜它不发送事件和函数。那是我的问题
    猜你喜欢
    • 2014-08-19
    • 2020-06-05
    • 2018-11-24
    • 2010-10-31
    • 2011-04-02
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    相关资源
    最近更新 更多