JavaでのOverlayLayoutの重要性は何ですか?
- OverlayLayout オブジェクトのサブクラスです クラスであり、コンポーネントを互いの上に配置し、コンポーネントで指定された配置を使用してそれらを相対的に配置できます。
- いずれかのコンポーネントに異なるサイズを指定すると、すべてのコンポーネントが表示されます。
- コンポーネントをフレーム内の他の場所または任意の場所に配置するには、2つのメソッドを使用できます setAlignmentX() およびsetAlignmentY() 。パラメータは、0.0fから1.0fの範囲の浮動値です。 OverlayLayoutは最大1.0fを取ります デフォルト。
- OverlayLayoutの重要なメソッドは、 addLayoutComponent()、です。 getTarget() 、 invalidateLayout() 、 maximumLayoutSize() など
例
import java.awt.*;
import javax.swing.*;
import javax.swing.OverlayLayout;
public class OverlayLayoutTest extends JFrame {
public OverlayLayoutTest() {
setTitle("OverlayLayout Test");
JPanel panel = new JPanel() {
public boolean isOptimizedDrawingEnabled() {
return false;
}
};
LayoutManager overlay = new OverlayLayout(panel);
panel.setLayout(overlay);
JButton button = new JButton("Small");
button.setMaximumSize(new Dimension(75, 50));
button.setBackground(Color.white);
panel.add(button);
button = new JButton("Medium Btn");
button.setMaximumSize(new Dimension(125, 75));
button.setBackground(Color.lightGray);
panel.add(button);
button = new JButton("Large Button");
button.setMaximumSize(new Dimension(200, 100));
button.setBackground(Color.orange);
panel.add(button);
add(panel, BorderLayout.CENTER);
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String args[]) {
new OverlayLayoutTest();
}
} 出力
-
JavaでのSwingWorkerクラスの重要性は何ですか?
SwingWorker クラスを使用すると、非同期を実行できます タスク ワーカースレッド(長時間実行タスクなど)で、イベントディスパッチスレッド(EDT )からSwingコンポーネントを更新します。 ) タスクの結果に基づきます。 Java1.6バージョンで導入されました。 SwingWorkerクラス java.swing.SwingWorker クラスはタスクワーカーであり、時間のかかるタスクをバックグラウンドで実行します。 SwingWorker インスタンスは3つのスレッドと相互作用します。現在 スレッド 、ワーカースレッド 、およびイベントディスパッチスレッド(E
-
JavaでのSwingUtilitiesクラスの重要性は何ですか?
Javaでは、Swingコンポーネントが画面に表示された後、それらはイベント処理スレッドと呼ばれる1つのスレッドでのみ操作できます。 。別のブロックにコードを記述し、このブロックにイベントへの参照を与えることができます 処理 スレッド 。 SwingUtilities クラスには、 invokeAndWait()という2つの重要な静的メソッドがあります。 およびinvokeLater() コードのブロックへの参照をイベントに配置するために使用します キュー 。 構文 public static void invokeAndWait(Runnable doRun) throws Interr