求助各位 去掉注释后图片就无法加载 为什么?代码稍后贴出[图片说明]
感觉应该是你图片的太大 不压缩的话 解析不了 你可以试试换一个小一点的图片 不压缩试试
package Server;
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
import javax.imageio.ImageIO;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Server {
static int i=0;
BufferedImage buffered;
Graphics g;
ServerSocket serversocket;
Socket socket;
JFrame frame;
DataInputStream reader;
Icon icon;
JLabel label;
static private Image image;
public Server() {
try {
label=new JLabel("ceshi");
serversocket=new ServerSocket(9999);
frame=new JFrame("测试");
frame.add(label);
frame.setSize(500, 470);
frame.setLayout(null);
new Thread(new Runnable() {
public void run() {
while(true) {
try {
socket=serversocket.accept();
} catch (IOException e) {
e.printStackTrace();
}
receive(socket);
}
}
}).start();
} catch (IOException e) {
e.printStackTrace();
}
}
public void receive(Socket socket) {//为每个socket开一个新线程
new Thread(new Runnable() {
@Override
public void run() {
try {
reader=new DataInputStream(socket.getInputStream());
byte[]array=new byte[102400];
int n=reader.read(array);
FileOutputStream writer=new FileOutputStream("D:\\testt.jpg");
writer.write(array,0,n);
BufferedImage image=ImageIO.read(new File("D:\\testt.jpg"));
//Image image=image.getScaledInstance(200, 270, Image.SCALE_DEFAULT);
xianshi(image);
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
private void xianshi(Image image) {
new Thread(new Runnable() {
@Override
public void run() {
frame.remove(label);
label.setVisible(false);
label=new JLabel(new ImageIcon(image));
label.setToolTipText("dfhkdjsfh");
label.setBounds(0, 0, 500, 470);
frame.add(label);
frame.setVisible(true);
frame.repaint();
}
}).start();
}
public static void main(String[]args) {
new Server();
}
}