一尘不染

如何在Java Swing for Hangman游戏中从侦听器获取更新的文本字段?

java

我正在尝试从Hangman程序编写代码。我不确定这个想法是否正确。我当时想在文本字段中使用破折号( _ _ ),当用户按下按钮时必须动态更改。例如,如果用户在下面的代码中按下按钮“ A”,则破折号应变为(A _ _ _)。那是用户猜测字母A是正确的。

我仍然对如何实现这一点感到困惑。附加eventListener将是我的下一部分。但是就目前而言,我必须使基本的GUI正常工作,为此我需要一个如何实现整个功能的想法。

什么是更好的方法来使这一工作?这是我到目前为止的代码。

import javax.swing.*;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridLayout;
import java.awt.event.*;
import java.awt.image.BufferedImage;

public class HangmanGUI {

public HangmanGUI() {
    JFrame myframe= new JFrame();
    myframe.getContentPane().setLayout(new BorderLayout());
    JPanel myPanel = new JPanel();
    myPanel.setLayout(new GridLayout(2,15));
    myframe.setSize(600,600);

    for (char alphabet = 'A';alphabet<='Z';alphabet++){
        myPanel.add(new JButton(alphabet+""));
    }

    myframe.getContentPane().add(myPanel, BorderLayout.SOUTH);
    myframe.setTitle("Hangman Game");
    myframe.setVisible(true);
    myframe.setLocationRelativeTo(null);
    myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args){
    new HangmanGUI();
}
}

阅读 206

收藏
2020-12-03

共1个答案

一尘不染

是的,JFromattedTextFeildMaskFormatter班级一起使用。MaskFormatter具有setPlaceholderCharacter('_')帮助您的功能。您可能还需要使用InputVerifier来验证用户输入的有效性。JFormattedTextFeild的文档提供了示例,以显示如何InputVerifier与其一起使用。

2020-12-03