gpt4 book ai didi

java - 我的 Jlabel 中的文本和图片之间的正方形 [_]

转载 作者:行者123 更新时间:2023-11-30 11:18:57 24 4
gpt4 key购买 nike

我创建了一个文件 .txt,其中包含一个句子。

我想用这句话和图片.gif设置一个Jlabel

所以我这样做了:

(我用 .txt 的路径和图片的路径声明了 2 个字符串)

然后我要求设置:

{
ZoneAlerte1 = new JLabel();
getContentPane().add(ZoneAlerte1);
ZoneAlerte1.setText(new UTIL_LireFichierTXT().getText(MessageTest));
ZoneAlerte1.setFont(new java.awt.Font("Tahoma",0,12));
ZoneAlerte1.setIcon(new ImageIcon(Icon));
ZoneAlerte1.setBounds(400, 200, 300, 40);
ZoneAlerte1.setVisible(true);


}

问题是:当我运行我的程序时,标签包含图片和我的文本,但它们之间有一个小方 block ,就像我的句子中有一些未知字符一样。

所以我尝试替换这一行:

ZoneAlerte1.setText(new UTIL_LireFichierTXT().getText(MessageTest)); by ZoneAlerte1.setText("hello");

它完美地工作,没有正方形

然后我猜问题出在这个调用读取 .txt 的方法:

public class UTIL_LireFichierTXT {
public String chaine="";
public String fichier ="";
public static void main(String[] args){

}


public String getText(String path){
fichier=path;

//lecture du fichier texte
try
{
InputStream ips=new FileInputStream(fichier);
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader br=new BufferedReader(ipsr);
String ligne;
while ((ligne=br.readLine())!=null)
{
//System.out.println(ligne);
chaine+=ligne+"\n";
}
br.close();
//System.out.println(chaine);
return chaine;
}
catch (Exception e)
{

}
return chaine;

}
}

问题不是来 self 的 .txt 或标签,因为当我做完全相同的事情(设置我的文本而不设置图片)时,它没有正方形。

其实这很奇怪,因为:

Jlabel + 此方法设置.txt: no square

Jlabel + 图片 + 这个方法:正方形

Jlabel + 图片:无正方形

Jlabel + 图片 + set.Text("Hello!"): square

提前致谢。

PS:我使用了 Jlabel 而不是 JTextPane 因为我需要透明度。

最佳答案

这很可能是因为文件不在 Java 期望的字符集中。 InputStreamReader 构造函数可以接受 Charset 以绕过平台默认设置。使用

Charset.forName(...) 

作为参数,您可以尝试不同的参数,看看是否有效(标准字符集可以在 javadoc 中找到)。

或者,您可以在 Windows 下使用 Notepad++(以及大量其他编辑器,这只是我个人最喜欢的)来调查此问题,以使用不同的字符集显示您的文本并在必要时进行转换。

JVM的默认字符集由

返回
Charset.defaultCharset()

有一些注意事项取决于您的版本(参见 this question )。

关于java - 我的 Jlabel 中的文本和图片之间的正方形 [_],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23518994/

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