为什么我的断线不起作用似乎是正确的

时间:2012-12-10 10:40:04

标签: java string for-loop jlabel

我使用简单的方法在临时字符串中写入它,然后将它放在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);

1 个答案:

答案 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问题