簡體   English   中英

如何為JLabel設置setText,以便它從void方法打印多個打印語句?

[英]How can I setText for a JLabel so it prints multiple print statements from a void method?

我將向您提供一段代碼:

JButton button = new JButton("Flip");
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        Flips flip = new Flips();

        flipsLabel.setText(Arrays.toString(flip.hAndT));

        flip.tailsCount();
        tailsLabel.setText("Total Tails " + Integer.toString(flip.tCount));

        flip.headsCount();
        headsLabel.setText("Total Tails " + Integer.toString(flip.hCount));
    }
});

以上都是有效的,因為tCounthCount是變量,因此我可以在tCount hCount它們設置為文本。

但是,我也想將以下方法打印到JLabel:

public static void headsCount() {
    System.out.println();
    System.out.println("Heads");
    System.out.println("=====");

    for (int i = 0; i < HandT.length; i++) {
        if (hAndT[i].equals("Head")) {
            System.out.println("index " + Integer.toString(i));
            hCount++;
        }
    }
}

輸出是在行首落入數組的索引的多行。 我無法通過將其設置為按鈕操作的文本來打印此void方法,因為它是原始類型。

我是否必須將方法轉換成返回類型,並使用此信息返回某種數組,以便可以將其打印到JLabel?

我是否必須將方法轉換為返回類型

是的,您可能會返回String

除了使用System.out.println(),還可以使用StringBuilder並將文本附加到StringBuilder

然后,您可以簡單地使用StringBuildertoString()方法返回完整的String

這樣我可以將其打印到JLabel?

我懷疑您會使用JLabel,因為JLabel並非旨在顯示多行文本。 您可以改用JTextArea

如果要使用JLabel,則仍可以使用StringBuilder來構建HTML以顯示在Label中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM