JavaでBorderFactoryを使用してさまざまな境界線を実装するにはどうすればよいですか?
BorderFactory ファクトリです Javaでさまざまなタイプの境界線を提供するクラス。
境界線の種類
- BevelBorder :この境界線は隆起を描画します または下げた 斜角のエッジ。
- EmptyBorder :描画は行いませんが、スペースを取ります。
- EtchedBorder :下がったエッチングボーダー 長方形と隆起したエッチングされた境界線の外観を与えます 画面の表面のように見えます。
- LineBorder :コンポーネントの周りに単純な長方形を描画します。 LineBorderで線の色と幅を指定できます コンストラクター。
- MatteBorder : MatteBorderを作成できます 特定の色で、左の境界線のサイズを指定します 、上、右、下 コンポーネントの。 MatteBorder また、境界線の描画に使用されるアイコンを渡すこともできます。これは、画像(ImageIcon)またはアイコンの他の実装にすることができます インターフェイス。
- TitledBorder :タイトル付きの通常の境界線。 TitledBorder 実際には境界線を描画しません。別の境界オブジェクトと組み合わせてタイトルを描画するだけです。この境界線タイプは、複雑なインターフェイスでさまざまなコントロールのセットをグループ化する場合に特に便利です。
- コンポーネントの境界線: 他の2つの境界線を含む境界線。これは、コンポーネントを EmptyBorderで囲む場合に特に便利です。 次に、 EtchedBorderなどの装飾的なものをその周りに配置します またはMatteBorder 。
例
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class BorderFactoryMain {
public static void main(String[] args) {
SwingUtilities.invokeLater(run);
}
static Runnable run = new Runnable() {
@Override
public void run() {
BorderFactoryTest test;
test = new BorderFactoryTest();
test.setVisible(true);
}
};
public static class BorderFactoryTest extends JFrame {
public BorderFactoryTest() {
setTitle("BorderFactory Test");
setSize(350, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
add(createBorderedPanel(BorderFactory.createRaisedBevelBorder(), "createRaisedBevelBorder()"));
add(createBorderedPanel(BorderFactory.createBevelBorder(BevelBorder.LOWERED), "createBevelBorder(BevelBorder.LOWERED)"));
add(createBorderedPanel(BorderFactory.createBevelBorder(BevelBorder.RAISED), "createBevelBorder(BevelBorder.RAISED)"));
add(createBorderedPanel(BorderFactory.createCompoundBorder(BorderFactory.
createBevelBorder(BevelBorder.RAISED),BorderFactory.createBevelBorder(BevelBorder.LOWERED)),
"createCompoundBorder(RAISED, LOWERED)"));
add(createBorderedPanel(BorderFactory.createEtchedBorder(), "createEtchedBorder()"));
add(createBorderedPanel(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "createEtchedBorder(EtchedBorder.LOWERED)"));
add(createBorderedPanel(BorderFactory.createEtchedBorder(EtchedBorder.RAISED), "createEtchedBorder(EtchedBorder.RAISED)"));
add(createBorderedPanel(BorderFactory.createEtchedBorder(Color.lightGray, Color.yellow), "createEtchedBorder(Color.lightGray, Color.yellow)"));
add(createBorderedPanel(BorderFactory.createLineBorder(Color.red), "createLineBorder(Color.red)"));
add(createBorderedPanel(BorderFactory.createLineBorder(Color.blue, 5), "createLineBorder(Color.blue, 5)"));
add(createBorderedPanel(BorderFactory.createDashedBorder(null), "createDashedBorder(null)"));
setLocationRelativeTo(null);
}
}
private static JPanel createBorderedPanel(Border b, String name) {
JLabel label = new JLabel(name);
JPanel panel = new JPanel();
panel.setBorder(b);
panel.add(label);
return panel;
}
} 出力
-
JavaでJToggleButtonを実装するにはどうすればよいですか?
JToggleButton JToggleButton AbstractButtonの拡張です また、オンに切り替えることができるボタンを表すために使用できます。 およびオフ 。 JToggleButtonの場合 を初めて押すと、押したままになり、2回押すと離すことができます。 JToggleButton ActionEventを生成します 押すたびに。 JToggleButton ItemEventを生成することもできます 、このイベントは、選択の概念をサポートするコンポーネントによって使用されます。 JToggleButtonの場合 を押すと選択されます。
-
JavaでJWindowを使用してスプラッシュ画面を実装するにはどうすればよいですか?
JWindow は、ユーザーのデスクトップのどこにでも表示できるコンテナです。 タイトルバーはありません 、ウィンドウ 管理 ボタン、 JFrameのようなものです。 JWindow JRootPaneが含まれています その唯一の子クラスとして。 contentPane JWindowの子の親になることができます 。 JFrameのように 、 JWindow は別のトップレベルのコンテナであり、装飾されていないJFrameとして機能します。 タイトルバー、ウィンドウメニューなどの機能はありません 、など。 JWindow スプラッシュ画面ウィンドウとして使用できます これ