我使用简单的方法在临时字符串中写入它,然后将它放在JLabel中,因为它不会产生breakline。并且我遇到问题,显示它显示的任何按钮。
public String printBestillingsordre(){
JButton button = new JButton("Varemodtaget");
for(HentbestillingsordreRegistrer hentboregistrer: hbor){
if(status == "Leveret"){
temp += "Ordre Status: " + hentboregistrer.BestillingsStatus+" \n " +
"LeverandoerID: "+ hentboregistrer.LeverandoerID+" \n ";
}else{
temp += hentboregistrer.BestillingsStatus+ button + "\n" +
"LeverandoerID: "+ hentboregistrer.LeverandoerID+"\n";
}
System.out.println(temp);
}
return temp;
}
我称之为,它看起来像这样
hboh.Hentbestillingsordre();
hboh.printBestillingsordre();
tilbagetilhovedmenu = new JButton("HovedMenu");
add(tilbagetilhovedmenu, BorderLayout.NORTH);
JPanel test = hboh.HentOrdreGUI();
add(test, BorderLayout.CENTER);
Handler handler = new Handler();
tilbagetilhovedmenu.addActionListener(handler);
答案 0 :(得分:1)
首先,我看不到你在哪里声明你的临时字符串,然后
我会在代码中更改两件事:
1)使用字符串构建器
2)使用equalsIgnoreCase
3)检查你在字符串连接中使用button
做了什么
因为它没有多大意义
public String printBestillingsordre(){
StringBuilder temp = new StringBuilder();
JButton button = new JButton("Varemodtaget");
for(HentbestillingsordreRegistrer hentboregistrer: hbor){
if(status.equalsIgnoreCase("Leveret"){
temp.append("<html>");
temp.append("Ordre Status: ");
temp.append(hentboregistrer.BestillingsStatus);
temp.append("<br>");
temp.append("LeverandoerID: ");
temp.append(hentboregistrer.LeverandoerID);
temp.append("<br>");
temp.append("</html>");
}else{
temp.append("<html>");
temp.append(hentboregistrer.BestillingsStatus);
temp.append(button); // whatever you're trying to append from button
temp.append("<br>");
temp.append("LeverandoerID: ");
temp.append(hentboregistrer.LeverandoerID);
temp.append("<br>");
temp.append("</html>");
}
System.out.println(temp.toSTring());
}
return temp.toSTring();
}
编辑:
解决方法1(在我的示例中使用):您可以考虑添加<html></html>
标记(添加到开头和结尾),每次需要换行时都使用<br>
标记
解决方法2:使用SwingX Label
:
XLabel label = new JXLabel();
label.setLineWrap(true);
请记住,如果您正在开发多线程应用,那么请考虑使用StringBuffer,因为它与踏板同步。有关详细信息,请查看this问题