1

我使用简单的方法将其写入临时字符串,然后将其放入 JLabel 中,因为它不会生成断线。我在显示按钮时遇到问题,它不显示任何内容。

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);
4

1 回答 1

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,因为它与踏板同步。有关更多信息,请查看问题

于 2012-12-10T10:58:16.587 回答