我正在开发J2SE中的聊天应用程序,它也可以向其他用户发送表情符号.
应用程序使用https://github.com/vdurmont/emoji-java(Vdurmont Emoji-java-2.1 jar),
我跟着该链路上任何一个所描述的所有的事情,所有正在运行的开发环境中正常,但当我做罐子一样的,当我发送表情符号在网络上的其他用户的,则显示的代码(ðŸ~¡和?).
首先,我认为这是一个从文件夹加载文件的问题,所以使用ClassLoader,以获得正确的图像,但在创建jar时它显示?(问号),所以我删除了该代码,以便更好地理解你.
代码如下:
public ChatUI() {
initComponents();
this.setLayout(new WrapLayout(FlowLayout.LEFT, 5, 5));
for (int i = 0; i < imageHexaCode.length; i++)
{
final javax.swing.JLabel imogis = new javax.swing.JLabel("&#x" + imageHexaCode[i] + ";");
imogis.setCursor(new Cursor(Cursor.HAND_CURSOR));
imogis.setIcon(new javax.swing.ImageIcon(getClass().getResource("emoji_" + imageHexaCode[i] + ".png")));
imogis.setHorizontalTextPosition(JLabel.CENTER);
imogis.setVerticalTextPosition(JLabel.BOTTOM);
imogis.setFont(new Font(null, Font.PLAIN, 1));
imogis.setForeground(Color.white);
final int aa = i;
imogis.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
JLabel jl = new JLabel("&#x" + imageHexaCode[aa] + ";");
jl.setName("&#x" + imageHexaCode[aa] + ";"); …Run Code Online (Sandbox Code Playgroud) 我总是记住这个问题,当我尝试执行以下操作时,c和java都有不同的输出
在C:
int i=5;
while(i--)
{
printf(i);
}
Run Code Online (Sandbox Code Playgroud)
输出:54321
在java中
int i=5;
while(i--) // Compilation error
{
System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)
为什么?条件时发生编译错误
我想用Java做:
int i=5;
while(i-- >0) {
System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)
运行此程序时,输出为:
4
3
2
1
0
Run Code Online (Sandbox Code Playgroud)
0在输出中我很惊讶.我是新的发展.谁能证明这一点?