私の知る限り、Java にはテキスト フィールドへの特殊文字の入力を妨げるものは何もありません。PC とラップトップの JTextField に度記号 º を入力できます。あなたのエラーがJavaに関連しているのかどうかはわかりません.NumlockキーもF11であるラップトップでのキーの競合のようです. この操作のために numlock を押し続ける必要はありません。netbeans の外でnum lock をオンにしてから、番号を入力してみてください。
同様に、netbeans の外部でプログラムを実行している場合 (dist フォルダー内の jar ファイルをダブルクリックできます)、この F11/numlock 競合の問題はなくなります。
0186 が度記号を意味するのはなぜですか?
文字 186 は、拡張ASCII チャートの一部です。ほとんどすべてのフォントがサポートする文字の 1 つですが、キーがないため、キーボードで入力することはできません。Windows では、拡張 ASCII 文字を入力する便利な方法が用意されています。Alt キーを押したまま、数字パッドに ASCII コードを入力すると、文字が表示されます。
このトリックを知っている平均的なユーザーはほとんどいません。度記号を入力したいとき。典型的なユーザーが度記号を入力したい場合、ユーザーは MS Word や Open Office Writer に見られるような特殊文字メニュー機能を探します。HTML に精通している人は、コードをエスケープすることで Web ページに特殊文字を入力できることを知っているでしょう: º そのため、キャラクターがユーザーにこの記号を入力する必要がある場合は、テキスト フィールドに追加するためのボタンをユーザーに与えることができます。
出力が度単位であるプログラムを作成したとき、ユーザーに記号を入力するように求めたことはありません。適切に表示されるように、正しいシンボルを出力に追加しました。例えば:
String degree = "" + (char)186;
String answer = celsiusToFaren(userInputC) + degree;