보더팩토리 공장입니다. Java에서 다양한 유형의 테두리를 제공하는 클래스입니다.
테두리 유형
- 베벨 테두리 :이 테두리는 올림을 그립니다. 또는 낮음 비스듬한 가장자리.
- 빈 테두리 :그림을 그리지 않지만 공간을 차지합니다.
- EtchedBorder :A 낮아진 에칭 테두리 직사각형 모양과 돌출된 에칭 테두리 제공 화면의 표면처럼 보입니다.
- 선 테두리 :구성 요소 주위에 간단한 사각형을 그립니다. LineBorder 에서 선의 색상과 너비를 지정할 수 있습니다. 생성자.
- 무광 테두리 :MatteBorder 를 만들 수 있습니다. 특정 색상으로 왼쪽 테두리 크기 지정 , 위쪽, 오른쪽 및 아래쪽 구성 요소의. 무광 테두리 또한 테두리를 그리는 데 사용할 아이콘을 전달할 수 있습니다. 이것은 이미지(ImageIcon) 또는 아이콘 의 다른 구현일 수 있습니다. 인터페이스.
- TitledBorder :제목이 있는 일반 테두리입니다. TitledBorder 실제로 테두리를 그리지 않습니다. 다른 테두리 개체와 함께 제목을 그립니다. 이 테두리 유형은 복잡한 인터페이스에서 여러 컨트롤 세트를 그룹화하는 데 특히 유용합니다.
- 구성요소 테두리: 두 개의 다른 테두리를 포함하는 테두리입니다. 이는 구성 요소를 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; } }
출력