java窗口聊天_java聊天窗口的实现

该博客介绍了如何使用Java创建一个简单的聊天程序,包括一个聊天窗口,用户可以输入文本,发送到指定IP地址,并具备清空聊天记录和退出系统功能。程序涉及到DatagramSocket、DatagramPacket等网络通信组件,以及JFrame、JTextArea、JButton等Swing组件来构建用户界面。
摘要由CSDN通过智能技术生成

编写一数据报通信程序,实现简单的聊天功能。

07af33b393f34029932161d35f8fa138.png

“聊天内容”和“输入文本”分别为当前聊天的历史信息和当前要传送出去的聊天文本。“确定”、“清空”、“退出”三个按钮分别实现发送当前聊天文本、清空当前聊天文本和退出系统的功能。import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

import java.net.SocketException;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JScrollBar;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class Frame extends JFrame implements WindowListener{

private JTextArea text;

private JTextField ipText;

private JTextField sendText;

private JButton button;

private JButton button1;

private JButton button2;

private DatagramSocket socket;

private JScrollBar vsBar;

public Frame(){

setTitle("聊天器");

setBounds(100, 150,481, 371);

text=new JTextArea();

text.setEditable(true);

setLayout(null);

JScrollPane textPanel = new JScrollPane(text);

vsBar = textPanel.getVerticalScrollBar();

textPanel.setBounds(10,10, 320, 240);

getContentPane().add(textPanel);

JLabel label=new JLabel("请输入对方IP:");

label.setFont(new Font("",Font.BOLD,14));

label.setBounds(342, 24, 110, 24);

getContentPane().add(label);

ipText = new JTextField();

ipText.setBounds(352, 54, 111, 31);

getContentPane().add(ipText);

button=new JButton();

button.setText("确定");

button.setBounds(363, 135, 85, 47);

button.setFont(new Font("",Font.BOLD,23));

getContentPane().add(button);

button.addActionListener(new send());

button1=new JButton("清空");

button1.setBounds(363, 200, 85, 47);

button1.setFont(new Font("",Font.BOLD,23));

getContentPane().add(button1);

button1.addActionListener(new clear());

button2=new JButton("退出");

button2.setBounds(363, 260, 85, 47);

button2.setFont(new Font("",Font.BOLD,23));

getContentPane().add(button2);

button2.addActionListener(new exit());

this.addWindowListener(this);

sendText = new JTextField();

sendText.setBounds(10, 260, 320, 47);

getContentPane().add(sendText);

//server();

pack();

setVisible(true);

}

class send implements ActionListener{

public void actionPerformed(ActionEvent e) {

try{

String ip=ipText.getText();

InetAddress address=InetAddress.getByName(ip);

byte[] data=sendText.getText().getBytes();

DatagramP

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值