[Javaのスイング] Javaでボーダーを使用して、
シンプルなボーダー
オープンボーダー
タイトル付きボーダー
国境を組み合わせます
随時スイングについて書いていません, この記事で私はボーダーを使用する方法を学ぶためにあなたをご案内します. Javaで基本的に境界線. 私たちは順番に学ぶために移動します 4 当事者としてのジャンルの境界線は、リストされています.
シンプルなボーダーを使用しました
ボーダーを作成するには, 次の構文を使用し、作成する境界線の種類に応じて.
ボーダーボーダー= BorderFactory.create…
下図のように今、私たちは単純な境界線のいくつかの種類を作成するためのコードになります.
– 直線ボーダー 特定に関連するボーダー定義色の種類
– 空の境界線 ボーダーは空です, それは、多くの場合、スペースを作成するために使用され, 中古パディングは、外部コンテンツとの間の距離を置くために使用するように.
– 隆起したエッチングボーダ ボーダー定義フォーマットが普及しています, 上にエンボス加工.
– 彫り込みエッチングボーダー エッチングボーダーですが、以下の沈没.
– 隆起ベベルボーダー 国境フォームは面取りを出現さ.
– 斜影ボーダー フォーマット作成ボーダーコーナーシンクはあります.
package nguyenvanquan7826.border; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.Border; import javax.swing.border.EtchedBorder; /** * --------------------- @author nguyenvanquan7826 --------------------- * ------------------ website: cachhoc.net ------------------- */ public class DemoSimpleBorders extends JFrame { /** create border type */ private Border lineBorder = BorderFactory.createLineBorder(Color.blue); private Border raisedEtched = BorderFactory .createEtchedBorder(EtchedBorder.RAISED); private Border loweredEtched = BorderFactory .createEtchedBorder(EtchedBorder.LOWERED); private Border raisedBevel = BorderFactory.createRaisedBevelBorder(); private Border loweredBevel = BorderFactory.createLoweredBevelBorder(); private Border empty = BorderFactory.createEmptyBorder(); /** * create border empty for JPanel contain content */ private Border panelBorder = BorderFactory .createEmptyBorder(20, 20, 20, 20); public DemoSimpleBorders() { add(createContent()); setDisplay(); } private void setDisplay() { setTitle("Demo Simple Border"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setLocationRelativeTo(null); setVisible(true); } /** * create JPanel contain six JPanel with borders */ private JPanel createContent() { JPanel panel = new JPanel(new GridLayout(3, 2, 10, 10)); panel.setBorder(panelBorder); panel.add(createPaneBorder(lineBorder, "line border")); panel.add(createPaneBorder(empty, "empty border")); panel.add(createPaneBorder(raisedEtched, "raised etched")); panel.add(createPaneBorder(loweredEtched, "lowered etched border")); panel.add(createPaneBorder(raisedBevel, "raised bevel border")); panel.add(createPaneBorder(loweredBevel, "lowered bevel border")); return panel; } /** * create JPanel contain a border */ private JPanel createPaneBorder(Border border, String content) { JPanel panel = new JPanel(new BorderLayout()); panel.setBorder(border); JLabel lb = new JLabel(content, JLabel.CENTER); panel.add(lb); return panel; } public static void main(String[] args) { new DemoSimpleBorders(); } }
マットの境界線を使用します
ボーダーマットは、私たちは色や輪郭生成された画像を使用することを可能にする形式であります. また、私たちは、エッジに別の次元を置く与えます. 写真を撮るときただし、上のデータのサイズを設定する必要があります -1 一方、サイズが邪魔されずに表示されます, 失われていません. コード例、.
package nguyenvanquan7826.border; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.net.URL; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.Border; /** * --------------------- @author nguyenvanquan7826 --------------------- * ------------------ website: cachhoc.net ------------------- */ public class DemoMatteBorder extends JFrame { private Border matteBorderColor; private Border matteBorderIcon; /** * create border empty for JPanel contain content */ private Border panelBorder = BorderFactory .createEmptyBorder(20, 20, 20, 20); public DemoMatteBorder() { createBorder(); add(createContent()); setDisplay(); } private void setDisplay() { setTitle("Demo Matte Border"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setLocationRelativeTo(null); setVisible(true); } /** * create JPanel contain six JPanel with borders */ private JPanel createContent() { JPanel panel = new JPanel(new GridLayout(2, 1, 10, 10)); panel.setBorder(panelBorder); panel.add(createPaneBorder(matteBorderColor, "matte border with color")); if (matteBorderIcon != null) { panel.add(createPaneBorder(matteBorderIcon, "matte border with icon")); } else { panel.add(createPaneBorder(matteBorderColor, "don't found icon")); } return panel; } /** * create JPanel contain a border */ private JPanel createPaneBorder(Border border, String content) { JPanel panel = new JPanel(new BorderLayout()); panel.setBorder(border); JLabel lb = new JLabel(content, JLabel.CENTER); panel.add(lb); return panel; } /** * create types border */ private void createBorder() { matteBorderColor = BorderFactory.createMatteBorder(1, 1, 5, 5, Color.blue); ImageIcon icon = createIcon("icon.gif"); if (icon != null) { matteBorderIcon = BorderFactory.createMatteBorder(-1, -1, -1, -1, icon); } } /** * create a icon from a path */ private ImageIcon createIcon(String path) { URL url = getClass().getResource(path); if (url != null) { return new ImageIcon(url); } else { return null; } } public static void main(String[] args) { new DemoMatteBorder(); } }
タイトルの境界線を使用して、
タイトル境界は境界線形式と題されています. あなたが左にタイトルを置くことができます, 右, 間に, 下の国境に,… さらに、あなたは境界線が作成された特定の形態で国境で設定することができます, それ以外の場合は、デフォルトの色青い枠線がぼやけされます.
package nguyenvanquan7826.border; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.Border; import javax.swing.border.TitledBorder; /** * --------------------- @author nguyenvanquan7826 --------------------- * ------------------ website: cachhoc.net ------------------- */ public class DemoTitleBorder extends JFrame { /** * create border empty for JPanel contain content */ private Border panelBorder = BorderFactory .createEmptyBorder(20, 20, 20, 20); public DemoTitleBorder() { add(createContent()); setDisplay(); } private void setDisplay() { setTitle("Demo Title Border"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setLocationRelativeTo(null); setVisible(true); } /** * create JPanel contain six JPanel with borders */ private JPanel createContent() { JPanel panel = new JPanel(new GridLayout(6, 1, 10, 10)); panel.setBorder(panelBorder); Border titleBorder; Border blueBorder = BorderFactory.createLineBorder(Color.BLUE); titleBorder = BorderFactory.createTitledBorder("title"); panel.add(createPaneBorder(titleBorder, "default title border")); titleBorder = BorderFactory.createTitledBorder(blueBorder, "title"); panel.add(createPaneBorder(titleBorder, "title border with color blue")); titleBorder = BorderFactory.createTitledBorder(blueBorder, "title", TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION); panel.add(createPaneBorder(titleBorder, "title border center just and default prsition")); titleBorder = BorderFactory.createTitledBorder(null, "title", TitledBorder.CENTER, TitledBorder.ABOVE_TOP); panel.add(createPaneBorder(titleBorder, "title border center just and above top")); titleBorder = BorderFactory.createTitledBorder(blueBorder, "title", TitledBorder.RIGHT, TitledBorder.BELOW_TOP); panel.add(createPaneBorder(titleBorder, "title border right just and below top")); titleBorder = BorderFactory.createTitledBorder(null, "title", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.BELOW_BOTTOM); panel.add(createPaneBorder(titleBorder, "title border default just and below bottom")); return panel; } /** * create JPanel contain a border */ private JPanel createPaneBorder(Border border, String content) { JPanel panel = new JPanel(new BorderLayout()); panel.setBorder(border); JLabel lb = new JLabel(content, JLabel.CENTER); panel.add(lb); return panel; } public static void main(String[] args) { new DemoTitleBorder(); } }
化合物の国境を使用してください
複合ボーダーが一緒にボーダーを組み合わせたものです. 私たちは、あなたが望むように美しいボーダーを作成するために使用することができます。また、国境化合物による別の枠に空のボーダーのボーダーを組み合わせてパディングやマージンを持ったコンテンツを作成することができます.
package nguyenvanquan7826.border; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.Border; import javax.swing.border.TitledBorder; /** * --------------------- @author nguyenvanquan7826 --------------------- * ------------------ website: cachhoc.net ------------------- */ public class DemoCompoundBorder extends JFrame { /** create border type */ private Border lineBorder = BorderFactory.createLineBorder(Color.blue); private Border raisedBevel = BorderFactory.createRaisedBevelBorder(); private Border loweredBevel = BorderFactory.createLoweredBevelBorder(); /** * create border empty for JPanel contain content */ private Border panelBorder = BorderFactory .createEmptyBorder(20, 20, 20, 20); public DemoCompoundBorder() { add(createContent()); setDisplay(); } private void setDisplay() { setTitle("Demo Compound Border"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setLocationRelativeTo(null); setVisible(true); } /** * create JPanel contain six JPanel with borders */ private JPanel createContent() { JPanel panel = new JPanel(new GridLayout(3, 1, 10, 10)); panel.setBorder(panelBorder); Border compound = BorderFactory.createCompoundBorder(raisedBevel, loweredBevel); panel.add(createPaneBorder(compound, "raisedBevel and loweredBevel")); compound = BorderFactory.createCompoundBorder(lineBorder, compound); panel.add(createPaneBorder(compound, "add lineBorder to compound")); Border titleBorder = BorderFactory.createTitledBorder(compound, "title", TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION); panel.add(createPaneBorder(titleBorder, "title border with compound")); return panel; } /** * create JPanel contain a border */ private JPanel createPaneBorder(Border border, String content) { JPanel panel = new JPanel(new BorderLayout()); panel.setBorder(border); JLabel lb = new JLabel(content, JLabel.CENTER); panel.add(lb); return panel; } public static void main(String[] args) { new DemoCompoundBorder(); } }
シリーズで行われた投稿 javaのスイングガイド.
参照とさらに読書: 境界線を使用 BorderFactory
ミューオンは、その後どのようにタイトルのフォントの色を設定します?
境界線の色の例以上、そしてあなた.