方法按钮,用于在标签上添加后者

时间:2012-11-24 21:23:35

标签: java swing

我有HangGame程序当我按下任何后期按钮时,我不会写这个代码,如(A,B,.....)后者,我按下它将出现在标签部分的正确位置我在文本文件中读到的单词例如我在文本文件中读取了单词(Stake)并在屏幕上会出现五个标签(_ _ _ _ _),当我按住S键时,字符S将出现在第一个标签部分(S _ _ _ _)等等......我不知道如何在Button中编写Action侦听器的代码。最后我添加了没有问题的标签,但我不知道如何将正确的角色放在正确的位置。 我希望你理解我的问题。

    public void ButtonComponent () {
    for (int i = 65; i < 78; i++) {
        JButton temp = new JButton("" + (char) i);
        temp.addActionListener(new BtnListener());
        temp.setBounds((i - 64) * 55, 110, 50, 30);
        add(temp);
    }
    for (int i = 78; i < 91; i++) {
        JButton temp = new JButton("" + (char) i);
        temp.addActionListener(new BtnListener());
        temp.setBounds((i - 77) * 55, 150, 50, 30);
        add(temp);
    }
}
class BtnListener implements ActionListener {
public void actionPerformed(ActionEvent e) {

    for (int s=0;s<splitword.length;s++) {
    String btnText = ((JButton)e.getSource()).getText().toLowerCase();
    if (splitword[s].contains(btnText)) {
        System.out.println("This letter is contained in the word:" + btnText);
    }

1 个答案:

答案 0 :(得分:1)

由于这是Hangman,您必须跟踪所使用的所有正确字母。这是解决方案的模板:

String guessWord = "STAKE";
StringBuilder builder = new StringBuilder();
builder.append("S"); // hint: btnText...
builder.append("T");
String displayWord = guessWord.replaceAll("[^" + builder.toString() + "]", "_");

我不会直接解决问题,但这应该足以让你使用。