テキストフィールドに入力された内容が英数字ではなく数字のみであることを確認しようとしています。私はフォーマットされたテキストボックスを調べましたが、チュートリアルのオラクルが自分のサイトに持っている理解の不足のため、それらを実装することができませんでした。私はいくつかの検索をして、キーリスナークラスを見つけました。そして、それは最良の選択肢のようでした。キーリスナーを使用してテキストフィールドへの入力を確認する方法
私はプログラムを実行し、文字のイベントを消費するのではなく、テキストフィールドに入力すると、私にビープ音が鳴ります。ここでは、コードがあります:ここでは
private void buildPanel()
{
// Create a label to display instructions.
messageLabel = new JLabel("Enter a time in seconds the object has fallen");
// Create a text field 10 characters wide
fallingTextField = new JTextField(10);
// Add a keylistener to the text field
fallingTextField.addKeyListener(new TextFieldListener());
// Create a button with the caption "Calculate"
calcButton = new JButton("Calcualte");
// Add an action listener to the button
calcButton.addActionListener(new CalcButtonListener());
//Create a JPanel object and let the panel field reference it
panel = new JPanel();
// Add the label, text field, and button components to the panel
panel.add(messageLabel);
panel.add(fallingTextField);
panel.add(calcButton);
}
/**
The TextFieldListener class checks to see if a valid key input is typed into
the text field.
*/
private class TextFieldListener implements KeyListener
{
/**
The keyPressed method
@param evt is a key event that verifies a number is inputed otherwise
the event is consumed.
*/
public void keyPressed(KeyEvent evt)
{
char c = evt.getKeyChar();
if(Character.isAlphabetic(c))
{
getToolkit().beep();
evt.consume();
}
}
public void keyReleased(KeyEvent e)
{
}
public void keyTyped(KeyEvent ev)
{
}
}
ドンあなたは次のように、最後の文字なしでフィールドの値を設定する必要があります'KeyListener'を使用しないでください。代わりに' KeyListener'を使用してください。 'DocumentFilter'を使用してください。それは – MadProgrammer
のために設計されたものです。それをあきらめないでください。ちょうどそのことを読んで、どのように使用するかを学んでください。あなたが見ると、あなたは問題に遭遇し、あきらめることに決めました。それをしないでください。あなたは**パズルを解決することによってプログラミングを学びます。別のものを交換するのではなく... – GhostCat
ユーザーがテキストをフィールドに貼り付けるとどうなりますか? (ヒントなし) – MadProgrammer