`
robinsoncrusoe
  • 浏览: 746703 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

java两个类之间进行交互

    博客分类:
  • JAVA
阅读更多
通过构造方法就可以把那个引用传过去了。。
如果你是在一个窗口干什么后打开另一个窗口的。。就是说你在一个窗口中打开另一个窗口的。。
TextFrame 类 这里面有个文本框和一个按钮。。点击按钮就打开另一个窗口。。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class TextFrame extends JFrame {

public JTextField jt;
/**
  * @param args
  */
public TextFrame() {
  JLabel jl = new JLabel("文本框:");
  this.jt = new JTextField(15);
  JButton jb = new JButton("点击");
  jb.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent arg0) {
    new ButtonFrame(TextFrame.this);
   }
  });
  JPanel jp = new JPanel();
  jp.add(jl);
  jp.add(jt);
  jp.add(jb);
  this.add(jp);
  this.setBounds(100, 100, 100, 100);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setVisible(true);
}
public static void main(String[] args) {
  new TextFrame();
}

}

ButtonFrame 类。。这里面有个按钮。点击就可以设置这边这个文本框的内容了。。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class ButtonFrame extends JFrame {

private TextFrame jf;
public ButtonFrame(TextFrame frame) {
  this.jf = frame;
  JButton jb = new JButton("点击设置");
  jb.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent arg0) {
    String str = JOptionPane.showInputDialog("请输入", null);
    ButtonFrame.this.jf.jt.setText(str);
   }
  });
  JPanel jp = new JPanel();
  jp.add(jb);
  this.add(jp);
  this.setBounds(250, 250, 100, 100);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setVisible(true);
}



}

如果两个类都是单独运行的。。没有任何关系的话(即不是在一个窗口中点击上面东西或是干什么就打开另一个窗口)。。都是独立运行的。。
那就需要用到socket了哦。。

下面两个类你都单独运行就是了哈。。
服务器端:SocketManager类。这里面有个文本框。。

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class SocketManager extends JFrame {
/**
  * @param args
  * @throws IOException
  */
private JTextField jt;

public static void main(String[] args) {
  SocketManager manager = new SocketManager();
  manager.doListen();
}

public SocketManager() {
  JLabel jl = new JLabel("文本框:");
  this.jt = new JTextField(15);
  JPanel jp = new JPanel();
  jp.add(jl);
  jp.add(jt);
  this.add(jp);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setVisible(true);
}

public void doListen() {
  ServerSocket server;
  try {
   server = new ServerSocket(9991);
   while (true) {
    Socket client = server.accept();
    new Thread(new SSocket(client)).start();
   }
  } catch (IOException e) {
   e.printStackTrace();
  }

}

// 服务器进程
class SSocket implements Runnable {

  Socket client;

  public SSocket(Socket client) {
   this.client = client;
  }

  public void run() {
   DataInputStream input;
   while (true) {
    try {
     input = new DataInputStream(client.getInputStream());
     try {
      String listMsg = input.readUTF();
      SocketManager.this.jt.setText(listMsg);
     } catch(Exception e) {
      break;
     }
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
}

}

客户端:Client类 有个按钮。。点击弹出输入框输入内容。。服务器的文本框就显示你输入的内容

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class Client extends JFrame {

private static Socket socket;
OutputStream netOut;
DataOutputStream doc;
public Client() {
  try {
   socket = new Socket("127.0.0.1", 9991);
   this.netOut = socket.getOutputStream();
   this.doc = new DataOutputStream(netOut);
  } catch(Exception e) {
   e.printStackTrace();
  }
  JButton jb = new JButton("点击设置");
  jb.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent arg0) {
    String str = JOptionPane.showInputDialog("请输入", null);
    try {
     doc.writeUTF(str);
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  });
  JPanel jp = new JPanel();
  jp.add(jb);
  this.add(jp);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setVisible(true);
}
public static void main(String[] args) {
  new Client();
}
}
分享到:
评论

相关推荐

    Java和JavaScript库进行交互

    Java和JavaScript库之间的交互是软件开发中的一个重要主题,特别是在构建多平台应用或增强网页功能时。Java和JavaScript作为两种不同的编程语言,它们各自在特定领域有着优势:Java以其强大的后端处理能力,而...

    java与html交互

    - 提供两个公共方法`getIpAddress()`和`getHostName()`用于返回这些值。 2. **HTML页面编写**: - 使用`<applet>`标签将Java Applet嵌入到HTML文档中。 - 通过JavaScript调用Applet对象的方法来获取IP地址和主机...

    java_es交互工具类.rar

    在Java中,与Elasticsearch进行交互通常会用到官方提供的Java REST Client或者Jest库,下面我们将深入探讨这两个主要的交互方式。 **一、Java REST Client** Java REST Client是Elasticsearch官方推荐的客户端,它...

    两个系统之间发送文件客户端和服务端

    本示例中的“两个系统之间发送文件客户端和服务端”是一个具体的应用实例,其中客户端负责发送PDF文件,而服务端则接收并保存这些文件。这里我们主要探讨的是HTTPClient库的使用,它被用来构建HTTP请求进行文件传输...

    java+js交互Demo

    Java和JavaScript交互是一种常见的技术实践,特别...总之,Java和JavaScript之间的交互涉及多个层面,包括跨域通信、实时通信和数据交换等。开发者可以根据实际需求选择合适的交互方式,以实现高效、安全的前后端协作。

    Java实现两个聊天窗口

    在Java编程中,实现两个聊天窗口的交互是一个典型的多线程和网络通信的应用场景。这里,我们将探讨如何利用Java的相关技术来完成这个任务。 首先,我们需要理解基础的Java GUI(图形用户界面)组件,如JFrame、...

    SpringBoot整合mqtt实现客户端之间的交互

    在IT行业中,Spring Boot是一个非常流行的Java框架,用于简化微服务开发。MQTT(Message Queuing Telemetry Transport)则是一种轻量级的消息协议,常用于物联网(IoT)设备之间的通信。本文将深入探讨如何利用Spring ...

    java与R交互

    - Java通过JRI(Java-R Interface)库与R进行交互,该库是R的REPL(Read-Eval-Print Loop)的Java接口。 - JRI允许Java代码直接执行R命令、传递数据、接收返回结果,实现了两者的无缝连接。 - 使用`rJava`包,R...

    两个QM之间消息传递JAVA程序

    标题中的“两个QM之间消息传递JAVA程序”指的是在IBM WebSphere MQ(以前称为MQSeries)环境中,使用Java编程语言实现在两个队列管理器(QM)之间的消息通信。描述中提到的方法是通过设置远程队列来实现这个目标,这...

    Java服务端和客户端交互实例

    下面将详细介绍这两个组件以及它们如何进行交互。 首先,我们来看`test01.java`,这通常代表服务器端的代码。在Java中,我们可以使用`java.net.ServerSocket`和`java.net.Socket`类来创建服务器并处理客户端连接。...

    C#和java 之间基于Socket的通信

    `Socket`和`ServerSocket`是两个核心类,前者用于客户端,后者用于服务器端。 - `Socket`类的`connect()`方法用于建立到服务器的连接,`getInputStream()`和`getOutputStream()`用于获取输入流和输出流,从而实现...

    整合java和c#_Javac#交互_

    本篇文章将详细探讨“Java与C#的交互”这一主题,旨在帮助开发者理解如何在两个不同的编程环境中实现高效的合作。 标题:“整合java和c#_Javac#交互_”意味着我们将讨论如何在Java和C#之间建立桥梁,实现代码共享、...

    Java编程输入两个年月日,(1)判断两个日期是否相同,并且将相差的天数显示出来;(2)将日期后推或前推N天,并将该日期输出。

    综上所述,这个Java程序主要实现了两个功能:一是判断两个给定日期是否相同及计算它们之间的天数差;二是将给定日期向前或向后调整一定数量的天数。程序的核心是`DateType`类的设计与实现,它包含了日期的创建、打印...

    AS3+JAVA网游开发数据交互源码.rar

    这个“AS3+JAVA网游开发数据交互源码”提供了使用ActionScript 3(AS3)和Java这两种语言进行网络数据交互的实例。下面我们将详细探讨这些知识点。 1. **ActionScript 3 (AS3)** AS3是Adobe Flash平台的主要编程...

    两个Fragment在同一个Activity上的交互

    本篇将详细探讨如何在同一个Activity中的两个Fragment之间进行交互,并特别关注使用LocalBroadcastReceiver这一方法。 首先,理解Fragment的基本概念至关重要。Fragment有自己的生命周期,可以独立于Activity运行,...

    Android中app之间的交互

    在"Android中app之间的交互"这一主题中,我们主要关注隐式Intent。隐式Intent的使用通常涉及以下步骤: 1. **创建Intent**:在发送方应用中,我们需要创建一个Intent对象,并设置相应的Action、Data、Category等...

    Android js与java交互改进最终版

    在这个项目中,我们主要会探讨两个核心组件:JS(JavaScript)和WebView。 **JavaScript (JS)** JS是一种广泛应用于网页开发的脚本语言,它允许开发者在用户的浏览器上运行代码,实现动态内容、用户交互和页面操作...

    java与sap交互 jco包

    本篇将详细介绍如何利用JCO包进行Java与SAP的交互,以及如何处理jar包和dll文件。 首先,JCO包是SAP Java连接器的核心组件,它提供了丰富的API,使得Java开发者可以方便地访问SAP R/3系统,执行ABAP程序,读取或...

    java实现两个小项目.zip

    这两个项目主要目的是帮助开发者巩固和实践Java基础知识,而不依赖于图形用户界面(GUI)如Swing,而是通过控制台进行输入和输出交互。 1. **Java基础知识**: - **基本语法**:项目中的代码展示了Java的基本语法...

Global site tag (gtag.js) - Google Analytics