佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1565|回复: 7

JAVA求助,在别的Class detect另外一个Class的按钮是否按了

[复制链接]
发表于 25-5-2015 10:24 PM | 显示全部楼层 |阅读模式
大家好,有一个问题要大家帮帮忙
我有3个class,一个是server的(简称server.java),一个是client(简称client.java),一个是完全做GUI的和process server和client之间的input的class(简称gui.java)

在我的gui.java里面有一个按钮和一个Jtextfield,当user key in input就按send,就是那个按钮,我要怎样在client.java里面来判定按钮有按还是没有按

我试过做method,可是不成功

gui.java的一些code
  1. public boolean getPressed(){
  2.                     return isPressed;
  3.             }


  4.             public void actionPerformed(ActionEvent e) {
  5.                    
  6.                    
  7.                     if(e.getSource()==Jsend)
  8.                     {
  9.                             String userinput = Jusertxt.getText();
  10.                                 setUserText(userinput);
  11.                                 Jusertxt.setText("");
  12.                                 isPressed = true;
  13.                     }
  14.             }
  15.                
复制代码


client.java里一些code
  1.        
  2.             if(tcp.getPressed()){
  3.             fromUser = tcp.Jusertxt.getText();
  4.             System.out.println(fromUser);
  5.             if (fromUser != null) {
  6.                     System.out.println("\nClient: " + fromUser);
  7.                     out.println(fromUser);
  8.                     }
  9.             }
复制代码
希望各位大大而已指导一下,谢谢
回复

使用道具 举报


ADVERTISEMENT

发表于 22-6-2015 05:35 PM | 显示全部楼层
我没太细看 不过是否可以使用“监听”来实现呢?
回复

使用道具 举报

 楼主| 发表于 22-6-2015 10:24 PM | 显示全部楼层
HiBody 发表于 22-6-2015 05:35 PM
我没太细看 不过是否可以使用“监听”来实现呢?

actionListener吗? 因为我的情况比较特别,在 while(true)里面一直looping的状况下要判断按钮是否按了..
回复

使用道具 举报

发表于 22-6-2015 11:20 PM | 显示全部楼层
shern91 发表于 22-6-2015 10:24 PM
actionListener吗? 因为我的情况比较特别,在 while(true)里面一直looping的状况下要判断按钮是否 ...

其实method 也可以。感觉不是技术上不能实现,而是楼主的代码有问题,你可以一步一步的追一下,看看
在” isPressed= true;下面打印一下,或者是设置断点,一步一步的跟一下代码 。慢慢来,别着急
回复

使用道具 举报

发表于 19-8-2015 04:50 PM | 显示全部楼层
用蠢办法,把client物件当成parameter 直接pass 给 GUI ,当 GUI的button 触发Click Event直接调用Client的函数不就得了?
回复

使用道具 举报

 楼主| 发表于 19-8-2015 08:43 PM | 显示全部楼层
SuperIdiot 发表于 19-8-2015 04:50 PM
用蠢办法,把client物件当成parameter 直接pass 给 GUI ,当 GUI的button 触发Click Event直接调用Client的 ...

有example吗?因为是在 while(true){"在这边里面确定按钮被按"}, 我试过几个方式也不能,功课是已经交了,不过现在当做学习也是不错
回复

使用道具 举报

Follow Us
发表于 20-8-2015 11:08 AM | 显示全部楼层
看起来你吧东西搞复杂了。
在gui.java里面建立一个
private Client client;
再建立一个函数
public void setClient(Client client)
{
       this.client = client;
}
在client.java里面将自己pass 给tcp.
tcp.setClient(this).
在client.java 里面添加一个callback function
public onSendPress(String data)
{
//当send button 按下时要做的事
}
最后就是你的gui.java里面触发按下时直接调用client 的 onSendPress(String data)

public void actionPerformed(ActionEvent e) {
                    
                    
                    if(e.getSource()==Jsend)
                    {
                            client.onSendPress(Jusertxt.getText());
                    }
            }
回复

使用道具 举报

 楼主| 发表于 30-10-2015 08:59 PM | 显示全部楼层
SuperIdiot 发表于 20-8-2015 11:08 AM
看起来你吧东西搞复杂了。
在gui.java里面建立一个
private Client client;

我的code有点麻烦,因为老师给便便了的,要我们自己改,如果你方便我就paste在这边给你看看一下
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT


本周最热论坛帖子本周最热论坛帖子

ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 6-8-2025 05:58 AM , Processed in 0.131121 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表