問題タブ [swingutilities]
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 - Swing アプリケーションを実行するメイン クラスへの SwingUtilities.invokeLater() メソッドの呼び出しとは正確には何ですか?
私はSwingにかなり慣れていないので、チュートリアル プロジェクトに基づいて作成された Swing アプリケーションを開始するこのメイン クラスについて、次のような疑問を抱いています。
したがって、このクラスには、アプリケーションの起動時に実行されるメソッドであるmain()メソッドが含まれています。
Swing アプリケーションのエントリポイントであるrunApp()メソッドを実行する run()メソッドを含むRunnableオブジェクトを作成するSwingUtilities.invokeLater()メソッドを実行します。
私の疑問は、SwingUtilities.invokeLater()メソッドが正確に何をするかに関連しています。正確には何ですか?そして、 invokeLater()メソッドのパラメーターとして作成されるRunnableオブジェクトは何ですか? Runnableインターフェースを自動的に実装するオブジェクトのように思えますが、それについてはよくわかりませんし、なぜそれを行う必要があるのか も明確ではありません。
この単純な Swing アプリケーションのアーキテクチャが正確にどのように機能するかを理解するのを手伝ってくれませんか?
java - SplitPane 分割用の Java メタル ルック アンド フィール UIManager ペインタ
UIManager.put(...) 呼び出しで JSplitPane ディバイダーをペイントするのに少し苦労しています。うまくいきません。私は "Metal" ルック アンド フィールを使用していますが、この変更は GUI が既に作成された後で行う必要があります。私の他のすべての UIManager.put(...) 操作は機能しているようですが、カラーキーアイテムに対してのみです。また、すべての作業が完了したら、SwingUtilities.updateComponentTreeUI(getRootPane()) も利用します。私のコード例は以下です。私のペインターを機能させるための提案があるかどうか疑問に思っていました。お時間をいただき、ありがとうございました。
上記は、私がやろうとしていることのほんの一例です。なぜそれが機能しないのですか?繰り返しになりますが、ご協力いただきありがとうございます。
java - 計算中の Java Swing ProgressBar の更新
同様の質問 (プログレス バー Java ) と ( Java アップロード パーセンテージ プログレスバー スレッド)の例がいくつかありますが、私のコードでそれを機能させる方法がわかりませんでした。
私のメインには2つのパネルが重なっています(そのうちの1つは2つのタブを持つtabbedPaneです)
重要なビットは、このオブジェクトです:SMRPanel smrPanel = new SMRPanel();
このオブジェクト内には、クラスconvertArchiveButton
から ActionListener を追加するJButton がありますController
コントローラーでのリスナーの実装は次のとおりです
converter
時間のかかる操作を行うクラスです
私は例として、 andRunnable
の両方で新しいものを追加しようとしましたが、うまくいきませんでした。クラスは役に立ちますか?用途がよくわかりません。EventQueue
SwingUtilities
SwingWorker
基本的に、int progress
の に渡されJProgressBar
ますSMRPanel
。
ControlAltDel 回答で編集:
それでも機能せconverter.readFile(file);
ず、呼び出されません。
java - 操作が完了するまでJFrameがスタックするのはなぜですか?
「中止」で作成しましたJFrame
。JButton
これJFrame
は、操作のステータスを示します。
operation()
関数に実行したい操作のコードが含まれているとしましょう。
関数のコードが実行されている間、 「中止」operation()
をクリックできません。JButton
JFrame
そのため、原因はイベントディスパッチャーである可能性があると考えたため、invokeLater
ofを使用して問題を修正しようとしましたSwingUtilities
:
ただし、JFrame
操作のコードが実行されている間は、まだスタックしています。どうすればこれを修正できますか?
java - イベント ディスパッチャー スレッドからメソッドを呼び出せません
ユーザーのマウスの動きとクリックを記録し、Robot
クラスを使用してそれらを再生するプログラムを作成しています。
このエラーが発生しています:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException: Cannot call method from the event dispatcher thread
私は EDT についてすべて読みましたが、EDT を終了するには別のスレッドで実行する必要があると人々は言い続けています。
私の質問は、新しいスレッドを使用したにもかかわらず、コードが機能しないのはなぜですか?
コードは次のとおりです。
System.out.println(SwingUtilities.isEventDispatchThread());
真を印刷します
クラスコード全体は次のとおりです。
java - 別のクラスの LAF の更新
私が書いた「戦艦」プログラムでは、プログラムの「ルック アンド フィール」を SystemDefault、「Metal」(Java デフォルト)、または「Motif」(Java にも含まれる) に変更する可能性を含めました。JComboBox
(--> 事前定義された文字列を変更する)から目的の LAF を選択しlookFeel
、確認ボタンを押すと、UIManager.setLookAndFeel(lookFeel)
が呼び出され、次のコードSwingUtilities.updateComponentTreeUI(this)
のメソッドも呼び出されます。updateUI()
ただし、このコードは、別のクラスの一部である他のウィンドウを更新しません。したがって、メイン プログラムを起動してルック アンド フィールを変更しても、これらのウィンドウは影響を受けません。実際にフレームを作成するこれらのクラスは問題ではありませんが、私のメイン プログラムは JFrame を拡張するだけです (おそらく二度と行うことはないでしょうが、このプログラムを書き始めたとき、私は Java にまったく慣れていませんでした)。ここで私の質問は、このクラスの LAF を変更するにはどうすればよいですか? 前もって感謝します!
java - JTextArea に何を表示するかを判断するコードを実行しているときに、JTextArea で進行状況を完全に表示するにはどうすればよいですか?
これが可能かどうかはわかりません。私は宝くじアプリケーションを作成しており、できるだけ少ない GUI コンポーネントを使用しようとしています。したがって、次のメッセージを表示するはずの JTextArea があります(たとえば):
「計算中…55.4%」
コンソールに出力すると問題なく表示されますが、JTextArea には出力されません。SwingUtilities.invokeLater を使用しようとしましたが、それも機能しません。
ご想像のとおり、上記の for ループで textArea のテキストを設定すると、JTextArea が更新されます。メソッドの最後まで JTextArea を更新しません。これは、チケット レポートを表示するようにテキスト領域を設定したときの一番下です。
最終目標: 最終的にはこれを Android フォン アプリケーションにしたいので、ポップアップなどは一切使用したくありません。
java - JTextPane の DoubleClick で「数字とアンダースコアを含むテキスト」を選択できない
JTextPane に「test_1_another_2_test3」のようなテキストがあります。テキストをダブルクリックしても、テキスト全体が選択されません (場合によっては、1 つの文字、数字、またはアンダースコア間のテキストのみが選択されます)。mouseactionlistener を実装できますが、アクションの実装方法がわかりません。
java - ClassCastException がスローされる
JFrame
を使用して作成しようとしていますSwingUtilities
class Loadingframe は非常に単純JFrame
です。このコードの実行中に ClassCastException が発生することがあります
私も試しInvokeLater
てみThreads only without Swing
ましたが、同じエラーも
そして私のローディングクラスのために