Lỗi java.lang.NullPointerException trong chat

Class chatjavaswing

package chat;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.Font;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.ServerSocket;
import java.net.Socket;

import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class chatjavaswing {

	private JFrame frame;
	private JTextField mess;
    static JTextArea arena;
    static ServerSocket ss;
    static Socket s;
    static DataInputStream in;
    static DataOutputStream out;
	/**
	 * Launch the application.
	 */
	private void initialize() {
		frame = new JFrame("people 1");
		frame.setBounds(100, 100, 450, 300);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
	    arena = new JTextArea();
		arena.setEditable(false);
		arena.setBounds(0, 0, 434, 206);
		frame.getContentPane().add(arena);
		
		mess = new JTextField();
		mess.setFont(new Font("Sylfaen", Font.PLAIN, 22));
		mess.setBounds(0, 217, 260, 33);
		frame.getContentPane().add(mess);
		mess.setColumns(10);
		
		JButton btnNewButton = new JButton("Sent");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				try {
					String magout="";
					magout=mess.getText().trim();
					out.writeUTF(magout);
					}catch (Exception ex) {
					ex.printStackTrace();
				}
			}
		});
		btnNewButton.setBounds(286, 219, 89, 23);
		frame.getContentPane().add(btnNewButton);
	}
	public chatjavaswing() {
		initialize();
	}
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					chatjavaswing window = new chatjavaswing();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		String magin="";
		try {
			ss = new ServerSocket(52919);
			s=ss.accept();
			in=new DataInputStream(s.getInputStream());
			out=new DataOutputStream(s.getOutputStream());
			while(magin.equals("exit")) {
				magin=in.readUTF();
				arena.setText(arena.getText().trim()+"\n"+magin);
				}
		}catch (Exception ex) {
			ex.printStackTrace();
		}
	}
}

class chatjavaswing1

package chat;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.Font;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;

import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class chatjavaswing1 {

	private JFrame frame;
	private JTextField mess;
    static JTextArea arena;
    static Socket s;
    static DataInputStream in;
    static DataOutputStream out;
	private void initialize() {
		frame = new JFrame("people 2");
		frame.setBounds(100, 100, 450, 300);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
		arena = new JTextArea();
		arena.setEditable(false);
		arena.setBounds(0, 0, 434, 206);
		frame.getContentPane().add(arena);
		
		mess = new JTextField();
		mess.setFont(new Font("Sylfaen", Font.PLAIN, 22));
		mess.setBounds(0, 217, 260, 33);
		frame.getContentPane().add(mess);
		mess.setColumns(10);
		
		JButton btnNewButton = new JButton("Sent");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				try {
					String magout="";
					magout=mess.getText().trim();
					out.writeUTF(magout);
					}catch (Exception ex) {
					ex.printStackTrace();
				}
			}
		});
		btnNewButton.setBounds(286, 219, 89, 23);
		frame.getContentPane().add(btnNewButton);
	}
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					chatjavaswing1 window = new chatjavaswing1();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		try {
			s=new Socket("192.168.1.1",52919);
			in=new DataInputStream(s.getInputStream());
			out=new DataOutputStream(s.getOutputStream());
			String magin="";
			while(magin.equals("exit")) {
				magin=in.readUTF();
				arena.setText(arena.getText().trim()+"\n chatjavaswing:\t"+magin);
				}
		}catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	/**
	 * Create the application.
	 */
	public chatjavaswing1() {
		initialize();
	}
}

1 Like

Lỗi ở đâu? Có log lỗi không? “Trong chat” là cái quần què gì? Code làm cái gì? Bạn đã search lỗi chưa?

Nói chung thì học cách hỏi đi bạn. Chứ hỏi thế này thì thề là không ai thèm trả lời câu hỏi của bạn đâu.

1 Like

7 posts were merged into an existing topic: Topic lưu trữ các post off-topic - version 3

@Uni nói nhẹ thôi bạn.
@Nguyen_Thanh_100 ai cũng biết mạng, JavaSwing, Socket là gì rồi.

Vấn đề ở đây, @Nguyen_Thanh_100 à!
Bạn biết lỗi là NullPointerException, bạn có đưa 2 đoạn mã, nhưng bạn không nói cụ thể ngoại lệ gây ra từ dòng nào, để bọn mình biết mà giúp. Nếu chạy trên 1 IDE hoặc CMD thì chắc chắn sẽ có thông báo ngoại lệ với đầy đủ thông tin lỗi từ dòng/phương thức của lớp nào.
Điều mọi người cần là thông báo ngoại lệ đầy đủ, không phải chỉ tên ngoại lệ thôi đâu!

2 Likes

ok rồi anh, :+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1:

Hi @Nguyen_Thanh_100

Đầu tiên, cậu nên đọc lại hướng dẫn từ comment trên của @SITUVN.gcd

  • Tớ vẫn chưa thấy cậu đề cập rõ NPE ở dòng nào. Khi exception xảy ra, cậu sẽ có stacktrace, và cậu nên đưa nội dung đó lên đây.
    Mô tả trong description vô cùng mơ hồ, cậu cũng chỉ đưa ra nội dung 2 class. Kể cả những chuyên gia về Java cũng sẽ không giúp cậu được gì, nếu cậu làm như hiện tại.
  • Chú ý thái độ hỏi của cậu nhé!
    Ở post đầu tiên, cậu chỉ đưa ra 2 class (với code vô cùng tệ hại. Tớ không chắc ai code Java lại đặt tên class như cậu, cùng với một đống biến static. Hi vọng cậu không tự nhận mình biết code Java đúng cách), không có bất cứ thông tin background và mô tả cậu gặp lỗi khi làm gì.
    Thử nghĩ xem nếu cậu đọc được câu hỏi nào cụt lủn như cách cậu đã hỏi, cậu có giúp họ không?
  • Cậu nên dừng việc hỏi lại người khác như thế này:

Đầu tiên, nó chẳng có ý nghĩa gì cả. Nó không giúp mọi người biết thêm thông tin để giúp cậu.
Tiếp theo, tớ nghĩ cậu đang cố gắng sỉ nhục những người giúp cậu. Đó không phải là thái độ học hỏi.
Thử tưởng tượng cậu hỏi cậu đó với một chuyên gia Java “bạn có học Java không? sao bạn nói những điều không não vậy”, cậu nghĩ người đó và những người xung quanh đọc được điều này sẽ nghĩ gì? Trong TH cậu chưa biết, họ sẽ nghĩ cậu đang mô tả chính bản thân cậu một cách hoàn hảo bằng những từ đó, và chẳng ai quan tâm tới người như vậy cả.
Kể cả người đó không phải chuyên gia, tớ e là cậu cũng không ở vị trí có thể sỉ nhục người khác như vậy, Thành ạ :smile:

Cậu có 6h để cải thiện bài viết này, trước khi nó bị đóng lại vĩnh viễn. Tớ cũng mong cậu sửa lại thái độ, đừng để tớ thấy cậu làm điều này một lần nữa với bất cứ ai trên diễn đàn. Bọn tớ chào đón những người muốn học hỏi, và cậu đang không thể hiện được điều đó.

5 Likes

Dựa trên comment off-topic mới nhất của bạn @Nguyen_Thanh_100 , tớ xin phép đóng topic này lại, vì bạn Thành không cần sự giúp đỡ nào nữa.
Đây cũng là lời cảnh báo chính thức và cuối cùng từ BQT diễn đàn dành cho bạn Thành. Nếu cậu muốn ở đây để học hỏi, cậu nên cư xử như người muốn học hỏi. Nếu cậu muốn ở đây để phá như cách cậu đang hành xử, cậu có thể đưa ra lời khẳng định, bọn tớ sẽ có những biện pháp thích hợp.

Regards,

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?