gpt4 book ai didi

java - 我无法显示图像

转载 作者:行者123 更新时间:2023-12-01 10:14:32 26 4
gpt4 key购买 nike

我正在开发一个聊天客户端程序,目前我可以获得文本 Pane ,左侧的文本输入。我可以添加按钮并将背景颜色更改为右侧,但我无法在右侧显示图像。从我读过的内容来看,有不止一种方法可以给猫剥皮,但我试图坚持我目前的设置,这样我就不必重写所有内容。我了解 Java (OOP) 的基础知识及其工作原理。我只是不知道如何格式化图像图标并显示该图像。这是代码:我正在使用 IntelliJ 进行编译。

package edu.lmu.cs.networking;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import javax.swing.ImageIcon;
import javax.imageio.ImageIO;
import javax.swing.*;

public class ChatClient {
private BufferedReader in;
private PrintWriter out;
private JFrame frame = new JFrame("Chatter");
private JTextField textField = new JTextField(20);
private JTextArea messageArea = new JTextArea(8, 40);
private JPanel panel;
private JButton button;
private JLabel label;

public ChatClient() {
textField.setEditable(false);
messageArea.setEditable(false);
// frame.setSize(500, 500);
// frame.setVisible(true);
frame.getContentPane().add(textField, "South");
frame.getContentPane().add(new JScrollPane(messageArea), "West");
panel = new JPanel();
panel.setBackground(Color.YELLOW);
button = new JButton("Button");
label = new JLabel(new ImageIcon("x.gif"));
panel.add(button);
panel.add(label, BorderLayout.EAST);
frame.add(panel);
frame.pack();
textField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
out.println(textField.getText());
textField.setText("");
}
});
}

private String getServerAddress() {
return JOptionPane.showInputDialog(frame, "Enter IP Address of the Server:",
"Welcome to the Chatter", JOptionPane.QUESTION_MESSAGE);
}

private String getName() {
return JOptionPane.showInputDialog(frame, "Choose a screen name:", "Screen name selection",
JOptionPane.PLAIN_MESSAGE);
}

private void run() throws IOException {
// Make connection and initialize streams
String serverAddress = getServerAddress();
Socket socket = new Socket(serverAddress, 5910);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
while (true) {
String line = in.readLine();
if (line.startsWith("SUBMITNAME")) {
out.println(getName());
} else if (line.startsWith("NAMEACCEPTED")) {
textField.setEditable(true);
} else if (line.startsWith("MESSAGE")) {
messageArea.append(line.substring(8) + "\n");
}
}
}

public static void main(String[] args) throws Exception {
ChatClient client = new ChatClient();
client.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
client.frame.setVisible(true);
client.run();
}
}

提前致谢,-布兰登

最佳答案

您只需按如下方式更改代码即可运行。刚刚在自己的电脑上测试了一下,成功了。

    ImageIcon icon = new ImageIcon(getClass().getResource("x.gif"));

label = new JLabel(icon);

看来你的问题是你没有真正加载图像。记住使用类加载器来加载资源文件。

您应该将“x.gif”放在项目目录或资源文件夹(首选)下才能完成此操作。

有关加载资源的更多详细信息,请查看 this link .

关于java - 我无法显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35977739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com