問題タブ [jtextcomponent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1690 参照

java - ActionListenerとDocumentListenerの両方を含むJTextField

非常に単純なJFrameにいくつかのJTextFieldがあります。フィールド1が最初にフォーカスを取得します。ユーザーが数字を入力してEnterキーを押すと、フォーカスをフィールド2に切り替えます。これを実現するには、フィールド1にActionListenerをアタッチします。また、フィールド1にドキュメントリスナーをアタッチして、整数のみを入力できるようにします。このフィールドに。

ドキュメントリスナーが最初に配置され、希望どおりに機能しています。次に、ActionListenerを追加しましたが、コードがこれに適していると思います(ただし、よくわかりません)。しかし、コードをテストすると、Enterキーはまったく効果がないようです。ActionListenerがそれに反応する前に、Document ListenerがEnterキーを「飲み込んでいる」可能性があるという意味で、問題は2つのリスナー間の競合であると思われます。

私のコードは次のとおりです。私は正しいですか?どうすればこれを修正できますか?ありがとう!

0 投票する
2 に答える
288 参照

java - HTML をサポートし、自動行折り返しと制限された幅を備えた Swing コンポーネント

クラスまたはメンバーの上にカーソルを置いたときに表示されるEclipseのようなスクロールバーを備えた小さなツールチップを実装したいと考えています。

私が抱えている問題は、ツールチップ内にあるスクロール ペイン内のコンポーネントの高さではなく幅のみを制限する方法を見つけることです。コンポーネントは HTML をサポートし、テキストが内側の境界の幅を超えたときにテキストを正しくラップする必要がありますが、私が試したすべてのコンポーネントには、行の折り返しまたは HTML レンダリングのいずれかがあり、両方はありません。

Xが「優先」「最大」「最小」などのすべての「setXSize」には、すべて2つの引数が必要であり、コンポーネントの「setMaxWidth」メソッドがないため、幅のみを制限する方法もどこにもありません。

「setMaximumSize(new Dimension(256, Integer.MAX_VALUE);」を設定することは解決策のように思えますが、「max」と「min」で設定されたパラメーターはほとんどの場合無視されるため、機能しません。これは非常にイライラします。

リクエストに応じて、実装の現在の例:

  • 実際のコードはもう少し複雑です。しかし、これは良い近似だと思います...
0 投票する
1 に答える
1575 参照

java - Javaのメモ帳でjtextfieldという単語を検索する

JTextAreaのすべての単語を強調表示するには、どのような条件を設定する必要がありますか?このコードはwhileループなしで機能しますが、一致する最初の単語を見つけて強調表示するだけです。

0 投票する
1 に答える
28456 参照

java - JFrame のテキストボックスから入力を受け取るにはどうすればよいですか?

次のメソッドは JFrame を拡張しますが、double 値を受け取って変数に格納するには、内部にスイング テキストボックスが必要です。テキストボックスをコンテナに追加する必要があります。

0 投票する
2 に答える
241 参照

java - JTextComponent のキャレットで選択したテキストをスキップするにはどうすればよいですか?

多くの環境におけるネイティブ テキスト フィールドの通常の動作は次のとおりです。

テキスト「abcdefg」を含むテキストフィールド。マウスを使用して、左から右に「efg」を選択します。キャレットは "g" の後ろにあります。カーソル左キーを1回押してキャレットを左に移動すると、選択が解除され、キャレットは「e」の直前になります。JTextField または JTextArea (Mac OS でテスト済み) で同じことを行うと、まったく同じことを行うと、"g" の直前にキャレットが配置されます。

KeyListener を使用して各コンポーネントに登録することで、プログラムでそれを変更する方法を知っていますが、アプリケーション全体でそれを変更する方法を探しています。それは可能ですか?フラグはありますか、見つかりませんか、それとも自分のルック アンド フィールをハックする必要がありますか?

ありがとう

0 投票する
1 に答える
413 参照

java - Swing JTextFieldsのActionMapをグローバルに変更するにはどうすればよいですか?

いくつかのアクションをカスタム実装に置き換えることで、アプリケーション全体のSwingJTextFieldsのActionMapを変更したいと思います。次の投稿を参照できる理由の説明については、次のとおりです。

JTextComponentのキャレットに選択したテキストをスキップさせるにはどうすればよいですか?

これを行うと、これはうまく機能します。

現在残っている唯一の問題は、これまでのところ、JTextFieldの最初のインスタンス化の後にそのコードを実行したときに、これが機能するようになっただけであるということです。ただし、理想的には、このコードをカスタムのルックアンドフィールまたはアプリケーションについて知る必要のない他の中心的な場所に統合したいと思います。呼び出し

最初は何も変更しません。UIManager.get( "TextField.actionMap")によって返されるマップは、その後もnullのままです。

現在、アプリケーションの初期化メソッドにダミーの新しいJTextField()を配置して、非常に醜いアクションマップを操作することに悩まされています。

0 投票する
1 に答える
2313 参照

java - Java でこのフォントが大きいのはなぜですか?

Swing アプリケーションのフォント オプションとして OpenDyslexic を使用しようとしています。しかし驚くべきことに、OpenDyslexic は、他のアプリケーションでは通常のサイズに見えますが、同じポイント サイズの他のどのフォントよりもはるかに大きく見えます。他の OpenType フォントをいくつか試してみましたが、特に大きくも小さくも見えません。Java で OpenDyslexic が非常に大きいのはなぜですか? また、OpenDyslexic のサイズを特別に指定する必要がないように、Java を通常のサイズにするにはどうすればよいですか?

すべての OS で Oracle JRE (私は 1.7.0_11、1.7.0_15、および最新の 1.7.0_21 を試しました) で、Java が を使用してフォント ファイルをロードすると、フォントが大きすぎますFont.createFont。ただし、フォントをオペレーティング システムにインストールすると、3 つのプラットフォームすべてで動作が異なります。

  • Linux では、フォントをインストールしても意味が~/.fontsありません。スクリーンショットは、フォントをインストールする前とインストールした後では同じように見えます。
  • Windows では、フォントをインストールするとフォントグリフが修正されますが、フォントの間隔がまだ大きすぎます。以下のスクリーンショットを参照してください。
  • OS X では、フォントをインストールすると修正されます。OS X では通常サイズのフォントのように見えます。

更新: 興味深いことに、OpenJDK (Linux の 7u21 Ubuntu パッケージと OS X の obuildfactory ビルドの両方) にはバグが見られませ。15pt OpenDyslexic 'm' は、フォントがファイルから作成されたときと、オペレーティング システムによってフォントが処理されたときの両方で、OpenJDK では 15px 幅です。このバグは最新の Oracle JRE にはありますが、最新の OpenJDK にはありません。

これが私のサンプルプログラムです。これを試すには、 OpenDyslexicファイルを resources/に配置する必要があることに注意してください。または、システムに OpenDyslexic をインストールしてregisterFonts()電話に出てください。

サンセリフは通常サイズ OpenDyslexic は同じポイント サイズで巨大です WindowsにOpenDyslexicをインストールした後、それはばかげているように見えます OS X にフォントをインストールした後: パーフェクト!

0 投票する
1 に答える
481 参照

java - n 文字後にテキスト書き込みをブロックする

n 文字が挿入された後、JTextField でのユーザー入力を「無効にする」このコードがあります。

それは機能しますが、代替手段があるかどうか疑問に思っていました。古い遅いコンピューターで試してみたので、テキストフィールドに何かを入力すると文字が追加され、その後消えてしまいます...e.consume()ユーザー入力後に使用したくない代わりに挿入を直接防止します。

出来ますか?

編集

JTextFieldこの例にのみ使用したことを忘れていましたが、このコードをJTextPaneJTextAreaなどの一般的なテキスト入力コンポーネントで動作させたいと思います。