スレッドはJavaでどのように相互に通信しますか?
スレッド間通信i スレッド同士の通信を含みます。 Javaでスレッド間通信を実装するために使用される3つの方法
wait()
このメソッドにより、現在のスレッドはロックを解放します 。これは、特定の時間が経過するか、別のスレッドが notify()を呼び出すまで行われます。 またはnotifyAll() このオブジェクトのメソッド。
notify()
このメソッドは単一のスレッドをウェイクアップします 現在のオブジェクトのモニター上の複数のスレッドから。スレッドの選択は任意です。
notifyAll()
このメソッドはすべてのスレッドをウェイクアップします 現在のオブジェクトのモニターにあります。
例
class BankClient { int balAmount = 5000; synchronized void withdrawMoney(int amount) { System.out.println("Withdrawing money"); balAmount -= amount; System.out.println("The balance amount is: " + balAmount); } synchronized void depositMoney(int amount) { System.out.println("Depositing money"); balAmount += amount; System.out.println("The balance amount is: " + balAmount); notify(); } } public class ThreadCommunicationTest { public static void main(String args[]) { final BankClient client = new BankClient(); new Thread() { public void run() { client.withdrawMoney(3000); } }.start(); new Thread() { public void run() { client.depositMoney(2000); } }.start(); } }
出力
Withdrawing money The balance amount is: 2000 Depositing money The balance amount is: 4000
-
JavaでJTableHeaderの各列にツールチップを設定するにはどうすればよいですか?
JTableHeader JComponentのサブクラスです クラス、JTableオブジェクトを作成すると、コンストラクターは新しいJTableHeaderオブジェクトを作成して、テーブルコンポーネントのヘッダーを管理します 。 JTableはsetTableHeader()を提供します テーブルヘッダーコンポーネントのJTableHeaderオブジェクトとgetTableHeader()を確立するメソッド テーブルヘッダーコンポーネントのJTableHeaderオブジェクトへの参照を返すメソッド。 getToolTipText()をオーバーライドすることで、JTableHeaderの
-
JavaでJTableの各列幅を変更するにはどうすればよいですか?
JTable JTable JComponentのサブクラスです 複雑なデータ構造を表示するため。 JTable Model View Controller(MVC)デザインパターンに従うことができます 行にデータを表示するため および列 。 DefaultTableModel クラスはAbstractTableModelを拡張できます また、行と列を JTableに追加するために使用できます。 動的に。 DefaultTableCellRenderer クラスはJLabelを拡張できます クラスであり、画像を追加するために使用できます 、色付きのテキスト J