問題タブ [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.
java - ActionListenerとDocumentListenerの両方を含むJTextField
非常に単純なJFrameにいくつかのJTextFieldがあります。フィールド1が最初にフォーカスを取得します。ユーザーが数字を入力してEnterキーを押すと、フォーカスをフィールド2に切り替えます。これを実現するには、フィールド1にActionListenerをアタッチします。また、フィールド1にドキュメントリスナーをアタッチして、整数のみを入力できるようにします。このフィールドに。
ドキュメントリスナーが最初に配置され、希望どおりに機能しています。次に、ActionListenerを追加しましたが、コードがこれに適していると思います(ただし、よくわかりません)。しかし、コードをテストすると、Enterキーはまったく効果がないようです。ActionListenerがそれに反応する前に、Document ListenerがEnterキーを「飲み込んでいる」可能性があるという意味で、問題は2つのリスナー間の競合であると思われます。
私のコードは次のとおりです。私は正しいですか?どうすればこれを修正できますか?ありがとう!
java - HTML をサポートし、自動行折り返しと制限された幅を備えた Swing コンポーネント
クラスまたはメンバーの上にカーソルを置いたときに表示されるEclipseのようなスクロールバーを備えた小さなツールチップを実装したいと考えています。
私が抱えている問題は、ツールチップ内にあるスクロール ペイン内のコンポーネントの高さではなく幅のみを制限する方法を見つけることです。コンポーネントは HTML をサポートし、テキストが内側の境界の幅を超えたときにテキストを正しくラップする必要がありますが、私が試したすべてのコンポーネントには、行の折り返しまたは HTML レンダリングのいずれかがあり、両方はありません。
Xが「優先」「最大」「最小」などのすべての「setXSize」には、すべて2つの引数が必要であり、コンポーネントの「setMaxWidth」メソッドがないため、幅のみを制限する方法もどこにもありません。
「setMaximumSize(new Dimension(256, Integer.MAX_VALUE);」を設定することは解決策のように思えますが、「max」と「min」で設定されたパラメーターはほとんどの場合無視されるため、機能しません。これは非常にイライラします。
リクエストに応じて、実装の現在の例:
- 実際のコードはもう少し複雑です。しかし、これは良い近似だと思います...
java - Javaのメモ帳でjtextfieldという単語を検索する
JTextAreaのすべての単語を強調表示するには、どのような条件を設定する必要がありますか?このコードはwhileループなしで機能しますが、一致する最初の単語を見つけて強調表示するだけです。
java - JFrame のテキストボックスから入力を受け取るにはどうすればよいですか?
次のメソッドは JFrame を拡張しますが、double 値を受け取って変数に格納するには、内部にスイング テキストボックスが必要です。テキストボックスをコンテナに追加する必要があります。
java - JTextComponent のキャレットで選択したテキストをスキップするにはどうすればよいですか?
多くの環境におけるネイティブ テキスト フィールドの通常の動作は次のとおりです。
テキスト「abcdefg」を含むテキストフィールド。マウスを使用して、左から右に「efg」を選択します。キャレットは "g" の後ろにあります。カーソル左キーを1回押してキャレットを左に移動すると、選択が解除され、キャレットは「e」の直前になります。JTextField または JTextArea (Mac OS でテスト済み) で同じことを行うと、まったく同じことを行うと、"g" の直前にキャレットが配置されます。
KeyListener を使用して各コンポーネントに登録することで、プログラムでそれを変更する方法を知っていますが、アプリケーション全体でそれを変更する方法を探しています。それは可能ですか?フラグはありますか、見つかりませんか、それとも自分のルック アンド フィールをハックする必要がありますか?
ありがとう
java - Swing JTextFieldsのActionMapをグローバルに変更するにはどうすればよいですか?
いくつかのアクションをカスタム実装に置き換えることで、アプリケーション全体のSwingJTextFieldsのActionMapを変更したいと思います。次の投稿を参照できる理由の説明については、次のとおりです。
JTextComponentのキャレットに選択したテキストをスキップさせるにはどうすればよいですか?
これを行うと、これはうまく機能します。
現在残っている唯一の問題は、これまでのところ、JTextFieldの最初のインスタンス化の後にそのコードを実行したときに、これが機能するようになっただけであるということです。ただし、理想的には、このコードをカスタムのルックアンドフィールまたはアプリケーションについて知る必要のない他の中心的な場所に統合したいと思います。呼び出し
最初は何も変更しません。UIManager.get( "TextField.actionMap")によって返されるマップは、その後もnullのままです。
現在、アプリケーションの初期化メソッドにダミーの新しいJTextField()を配置して、非常に醜いアクションマップを操作することに悩まされています。
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()
電話に出てください。
java - n 文字後にテキスト書き込みをブロックする
n 文字が挿入された後、JTextField でのユーザー入力を「無効にする」このコードがあります。
それは機能しますが、代替手段があるかどうか疑問に思っていました。古い遅いコンピューターで試してみたので、テキストフィールドに何かを入力すると文字が追加され、その後消えてしまいます...e.consume()
ユーザー入力後に使用したくない代わりに挿入を直接防止します。
出来ますか?
編集
JTextField
この例にのみ使用したことを忘れていましたが、このコードをJTextPane
、JTextArea
などの一般的なテキスト入力コンポーネントで動作させたいと思います。