BorderFactory를 사용하여 테두리 만들기

컴포넌트 또는 컨테이너에 테두리를 추가하려면 java  BorderFactory - 다양한 유형의 스윙 테두리를 제공합니다. 테두리를 만드는 세 단계는 다음과 같습니다.
  • Border.
  • BorderFactory.create... ().
  • 메서드 setBorder.

LineBorder

이 <메서드로 JComponent(구성 요소)를 수정합니다. >BorderFactory.createLineBorder(Color, int) 단일 테두리를 만듭니다. 첫 번째 매개 변수는 색상을 나타내고 두 번째 매개 변수는 선의 너비를 나타냅니다.

다음 코드는 JLabel과 JPanel에 Border를 만듭니다.

import java.awt.BorderLayout; 
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;

public class BorderFactoryExample extends JPanel{

public BorderFactoryExample(){

JFrame f = new JFrame("BorderFactoryExample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);

JPanel 패널 = new JPanel();
JLabel 레이블 = new JLabel ( "lineBorder");
label.setPreferredSize(새 Dimension(100, 100));
panel.add(레이블);
panel.setPreferredSize(새 치수(200,125));
//검은색 선 테두리 및 최소 너비 생성 1
테두리 lineborder = BorderFactory.createLineBorder(Color.black, 1);
//JLabel label.setBorder(lineborder);

f.getContentPane().setLayout(new BorderLayout());
f.add(new JLabel(" "), BorderLayout.NORTH);
//center
f.add(panel, BorderLayout.CENTER);
f.pack();

}
public static void main(String[] args) {
new BorderFactoryExample();
}
}
Output
BorderFactory 예제 lineBorder

EtchedBorder

Etched는 외부에서 프랑스어로 새겨진 것을 의미합니다: EtchedBorder.RAISED 또는 내부에서: EtchedBorder.LOWERED.

RAISED

 테두리 EtchedBorderRaised = BorderFactory.createEtchedBorder (EtchedBorder.RAISED); 
borderfactory 올림

LOWERED

Border EtchedBorderLowered = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED); 
borderfactory lowered

RaisedBevelBorder

그림자에 대해 밝은 음영과 어두운 음영으로 테두리를 느슨한 버튼으로 만듭니다.

 테두리 RaisedBevelBorder = BorderFactory.createRaisedBevelBorder(); 
borderfactory가 경사 테두리를 올렸습니다

LoweredBevelBorder

그림자에 대해 밝은 음영과 어두운 음영이 있는 누른 버튼으로 테두리를 만듭니다.

테두리 LoweredBevelBorder = BorderFactory.createLoweredBevelBorder(); 
borderfactory lowered bevel border

MatteBorder

5 개의 매개 변수로 테두리를 만들고 처음 4 개는 왼쪽, 오른쪽, 위쪽 및 아래쪽 줄의 너비를 처리합니다. 그리고 가장자리를 채색하는 마지막 것.

Border matteborder = BorderFactory.createMatteBorder(1, 1, 3, 1, 1, Color.blue); 
borderfactory matteborder

테두리 주변을 다시 디자인하는 아이콘을 추가하여 더 예쁘게 만들 수도 있습니다.

ImageIcon icon = new ImageIcon("etoile.png"); 
테두리 매트테두리 = BorderFactory.createMatteBorder(1, 1, 3, 1, 아이콘);
borderfactory matteborder icon

TitledBorder

TitledBorder에는 5개의 생성자가 있으며, 특정 테두리 스타일이 있는 테두리에 제목을 추가할 수 있는 모든 매개변수를 포함하는 예제를 만들기로 선택했습니다.   위치, 글꼴 및 색상.

Border LoweredBevelBorder = BorderFactory.createLoweredBevelBorder(); 
Border EtchedBorderRaised = BorderFactory.createTitledBorder(LoweredBevelBorder, "title",
TitledBorder.LEFT,TitledBorder.TOP, 
new Font("Arial", Font.PLAIN , 13), Color.black);
borderfactory titledborder

EtchedBorder

이 스타일은 두 가지 스타일을 하나로 결합합니다. 예를 들어, RaisedBevelBorder 안에 LineBorder를 그리고 싶습니다.

Border lineborder = BorderFactory.createLoweredBevelBorder(); 
Border RaisedBevelBorder = BorderFactory.createLineBorder(Color.blue);
Border EtchedBorderRaised = BorderFactory.createCompoundBorder(lineborder,
RaisedBevelBorder);
BorderFactory EtchedBorder

References
Oracle 문서: BorderFactory
java2s: 생성 BorderFactory