gpt4 book ai didi

java - 在 GUI 中使用预定义的字符串

转载 作者:行者123 更新时间:2023-12-02 07:02:37 25 4
gpt4 key购买 nike

我已经按照我想要的方式设置了 GUI,现在我正在尝试输出一个名为 AnswerKey 的字符串,我已在 dashReplace() 中预定义了我尝试绘制字符串并使用 JLabel,但我似乎找不到这样做的正确方法。

import java.awt.*;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

import javax.swing.*;



public class HangmanPanel extends JPanel {
private static final long serialVersionUID = -5793357804828609325L;

public static String answerKey() {
//get random array element
String array[] = new String[10];
array[0] = "hamlet";
array[1] = "mysts of avalon";
array[2] = "the iliad";
array[3] = "tales from edger allan poe";
array[4] = "the children of hurin";
array[5] = "the red badge of courage";
array[6] = "of mice and men";
array[7] = "utopia";
array[8] = "chariots of the gods";
array[9] = "a brief history of time";

ArrayList<String> list = new ArrayList<String>(Arrays.asList(array));
Collections.shuffle(list);
String s = list.get(0);
return s;
}

public static StringBuilder dashReplace(String s) {
//replace non-white space char with dashes and creates StringBuilder Object
String tW = s.replaceAll("\\S", "-");
System.out.print(tW + "\n");
StringBuilder AnswerKey = new StringBuilder(tW);
return AnswerKey;
}




public HangmanPanel(){
this.setLayout(null);

JLabel heading = new JLabel("Welcome to the Hangman App");
JButton Button = new JButton("Ok");
//Button.addActionListener((ActionListener) this);
JLabel tfLable = new JLabel("Please Enter a Letter:");

//trying to out put predefined string
JLabel AnswerKey = new JLabel(AnswerKey);

JTextField text = new JTextField(10);
//String input = text.getText();

heading.setSize(200, 50);
tfLable.setSize(150, 50);
text.setSize(50, 30);
Button.setSize(60, 20);

heading.setLocation(300, 10);
tfLable.setLocation(50, 40);
text.setLocation(50, 80);
Button.setLocation(100, 85);

this.add(heading);
this.add(tfLable);
this.add(text);
this.add(Button);
}

}

最佳答案

该方法称为 answerKey,而不是 AnswerKey。事实上,这肯定不会像您当前编写的那样编译 - 您试图在使用该变量作为构造函数参数时将变量分配给某些东西。应该是:

JLabel AnswerKey = new JLabel(dashReplace(answerKey()).toString());

但是,要实现此功能,您需要将该方法设置为非静态。另外,拥有一个名为 AnswerKey 的变量和一个名为 answerKey 的方法只会让人感到困惑 - 我建议为 JLabel 取一个更好的名称.

关于java - 在 GUI 中使用预定义的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16461835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com