보더팩토리 공장입니다. 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;
}
} 출력
