Red de conocimiento informático - Computadora portátil - 2 subprograma de chat Java

2 subprograma de chat Java

importar java.awt.*;

importar javax.swing.*

importar java.awt.event.*; >importar java.net.*;

importar java.io.>clase MyChatter extiende JFrame {

JLabel privado jLName = new JLabel();

privado JTextField jTName = nuevo JTextField();

JLabel privado jLSendMss = nuevo JLabel();

JLabel privado jLReceiveMss = nuevo JLabel(); = nuevo JButton();

JButton privado jBClear = nuevo JButton();

JScrollPane privado jScrollPane1 = nuevo JScrollPane()

JTextPane privado jTSendMss = nuevo JTextPane();

JScrollPane privado jScrollPane2 = nuevo JScrollPane();

JTextPane privado jTReceiveMss = nuevo JTextPane(); //Adaptador de ventana

private MyWindowAdapter mwa=null;

//Variables miembro de comunicación

byte privado[] recibirBuf=nuevo byte[1000]

p>

p>

byte privado[] sendBuf=null;

DatagramSocket privado datagramServer=null;

DatagramSocket privado datagramClient=null

DatagramPacket privado recibirPacket; =null;

p>

paquete de datos privado sendPacket=null;

PORT final estático privado=5000

dirección Inet privada inetAddr=null; /p>

servidor privado = nulo;

cadena privada machineName=null;

cadena privada sendMss=null

clase El servidor extiende el hilo{

servidor público( ){

start();

}

ejecución vacía pública(){

while(true){

intentar{

// System.out.println(datatdat)out.println(datagramServer

datagramServer.receive(receivePacket);

displayMss();

}

catch(Excepción e){

e.printStackTrace(); >

}

}

}

}

clase MyWindowAdapter extiende WindowAdapter{

public void ventanaClosing(WindowEvent e) {

cerrar();

System.exit(0); >

clase MyKeyAdapter extiende KeyAdapter{

public void keyPressed(KeyEvent e){

/System.out.println(e.getKeyCode());

if(e.isShiftDown()&e.getKeyCode()==10) {

sendReady();

}

}

}

private void sendReady(){

if(!checkMachineName()){

return;

}

if(!checkSendMss()){

Devolver

}

if(sendMss()){

JOptionPane.showMessageDialog(null, "¡Enviar mensaje correctamente!", "Pista", JOptionPane.ERROR_MESSAGE

}

else{

); JOptionPane.showMessageDialog(null, "¡Enviar mensaje correctamente!", "Pista", JOptionPane.ERROR_MESSAGE);

}

else{

JOptionPane. null, "¡Enviar mensaje correctamente! showMessageDialog(null, "¡Error en enviar mensaje!", "Hint", JOptionPane.ERROR_MESSAGE);

}

}

}

sendMss booleano privado(){

prueba{

sendPacket=toDatagram(sendMss, inetAddr, PORT);

datagramClient. enviar(enviarPaquete);

}

p>

catch(Excepción e){

devuelve falso

}

devuelve verdadero; >

paquete de datos privado a Datagram (String s, InetAddress destIA, int destPort){

//sendBuf=new byte[s.

//s.getBytes(0, s .length(), sendBuf, 0);

prueba{

sendBuf=s.getBytes("GB2312"); p> catch(Exception e){

}

devuelve nuevo DatagramPacket(sendBuf, sendBuf.length, destIA, destPort);

checkMachineName() booleano privado{

nombreMáquina=jTName.getText();

if(nombreMáquina.length()==0){

JOptionPane.showMessageDialog(null, "¡Ingrese un nombre de máquina!", "Advertencia", JOptionPane.ERROR_MESSAGE);

devuelve falso

}

prueba; {

inetAddr=InetAddress.getByName(nombredemáquina

}

catch(nombredemáquina.length() ==0); > if(machineName.length() ==0); {

JOptionPane.

catch(UnknownHostException e){

JOptionPane.showMessageDialog(null, " ¡El nombre de la máquina no reconocido o la máquina no existe!", "Advertencia", JOptionPane.showMessageDialog(null, "¡El nombre de la máquina no reconocido o la máquina no existe!"), "Advertencia", JOptionPane.ERROR_MESSAGE);

Devuelve falso;

}

Devuelve verdadero

}

checkSendMss privado booleano(){

sendMss =jTSendMss.getText();

If (sendMss.length()==0){

JOptionPane.showMessageDialog(null, "¡El mensaje a enviar no puede estar vacío!" ", "Advertencia", JOptionPane.ERROR_MESSAGE);

Devuelve falso

;

}

Devuelve verdadero;

}

displayMss privado vacío(){

Cadena mss= null;

String tmp=jTReceiveMss.setText(tmp mss "\n");

}

}

cierre vacío privado (){

}

private void init() lanza IOException{

mwa=new MyWindowAdapter();

datagramServer=new DatagramSocket(PORT);

datagramClient=nuevo DatagramSocket();

recibirPaquete=nuevo DatagramPacket(receiveBuf, recibirBuf.addKeyListener(nuevo MyKeyAdapter());

server=new Server();

}

public MyChatter() lanza HeadlessException {

prueba {

jbInit();

init();

}

catch(Excepción e) {

e.printStackTrace(); > }

}

public static void main (String[] args) lanza HeadlessException {

MyChatter myChatter1 = new MyChatter(); p> myChatter1.addWindowListener(myChatter1.mwa);

myChatter1.setSize(400, 410);

myChatter1.setVisible(true);

}

private void jbInit() lanza una excepción {

jLName.setText("Nombre de la máquina o dirección IP:");

jLName.setBounds(new rectángulo(15 , 7, 108, 18));

this.getContentPane().setLayout(null);

jTName.setBounds(new rectángulo(13, 27, 368, 22)) ;

jLSendMss.setText("Enviando mensaje: ");

jLSendMss.setBounds(new Rectángulo(12, 54, 92, 20));

jLSendMss.setBounds(new Rectángulo(12, 54, 92, 20));

this.20));

jLReceiveMss.se

tText("Recibir mensaje:");

jLReceiveMss.setBounds(nuevo Rectángulo(12, 208, 86, 19));

jBSend.setBounds(nuevo Rectángulo(97, 178 ) , 68, 19));

jBSend.setText("Enviar");

jLSendMss.setBounds(new Rectángulo(12, 54, 92, 20));

this.setText("Enviar");

jBSend.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(ActionEvent e) {

jBSend_actionPerformed(e);

}

});

jBClear.setText("Clear")setBounds(nuevo rectángulo) (224, 179, 68, 19));

this.setResizable(false);

this.setTitle("Programa de chat de Zhang Hui"

);

jScrollPane1.setBounds(nuevo Rectángulo(13, 77, 368, 90));

jScrollPane2.setBounds(nuevo Rectángulo(13, 228, 368, 145));

jTReceiveMss. setEdditable(false);

this.getContentPane().add(jLName, null);

this.getContentPane().add(jTName, null);

this.getContentPane().add(jLSendMss, null);

this.getContentPane().add(jLReceiveMss, null);

this.getContentPane(). .add( jBSend, null);

this.getContentPane().add(jBClear, null);

this.getContentPane().add(jScrollPane1, null);

this.getContentPane().add(jScrollPane2, null);

jScrollPane2.getViewport().add(jTReceiveMss, null);

jScrollPane1.getViewport() .add( jTSendMss, null);

}

void jBClear_actionPerformed(ActionEvent e) {

jTSendMss.setText(" "

<); p> }

v

oid jBSend_actionPerformed(ActionEvent e) {

sendReady();

}

}

Absolutamente válido, ¡de acuerdo!