[英]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));
}
});
以上都是有效的,因為tCount
和hCount
是變量,因此我可以在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
。
然后,您可以簡單地使用StringBuilder
的toString()
方法返回完整的String
。
這樣我可以將其打印到JLabel?
我懷疑您會使用JLabel,因為JLabel並非旨在顯示多行文本。 您可以改用JTextArea
。
如果要使用JLabel,則仍可以使用StringBuilder來構建HTML以顯示在Label中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.