スレッドは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