자바 JFC 구성 및 일반 클래스 활용 보더(Border)레이아웃

자바 JFC 구성 및 일반 클래스 활용 보더(Border)레이아웃


보더 레이아웃 (Border Layout)
스윙에서 또하나의 특징인 보더(Border)는 각 컴포넌트의 영역을 나타낼 때 구분지어 주는 형식을 말한다.
보더(Border)는 8가지가 사용될 수 있는데 그 이름은 Empty, Line, Etched, Bevel, SoftBevel, Matte
Titled, Compound이다 .

1 . BevelBorder :

1
private BevelBorder bb = new BevelBorder(BevelBorder.RAISED, Color.green,Color.red, Color.blue, Color.darkGray);

BevelBorder 는 컴포넌트가 올라오거나 내려간 모양을 표현할때 사용하는 보더이다 .
매개변수로는 BevelBorder.RAISED는 버튼이 올라간 모양 이고
BevelBorder.LOWER는 내려간 모양을 표현
Color.red는 눌리지 않았을때의 Border외부색깔
Color.green은 눌리지 않았을 때의 Border내부색깔
Color.blue는 눌렸을때의 Border 외부 색깔
Color.darkGray는 눌렸을 때의 Border내부 색깔

2 . EmptyBorder :

1
private EmptyBorder bb = new EmptyBorder(int top, int left ,int bottom , int right);

EmptyBorder는 Label처럼 평면 형태를 보여주는 보더이다
매개 변수로는 insets를 준다 고로 공백을 표현한다 다시말해 Padding처럼 내부의 공백을 표현

3 . EtchedBorder :

1
private EtchedBorder bb = new EtchedBorder(EtchedBorder.LOWERED, Color.green, Color.red);

EtchedBorder는 컴포넌트 주위에 홈이 파여 있는 모양을 표현한다.
매개변수로는 EtchedBorder.LOWERED가 있고 EtchedBorder.RAISED가 있다
Color.green은 바깥쪽 양각부분에 색깔이며
Color.red는 안쪽 그림자부분 색깔이다.

4 . LineBorder :

1
private LineBorder bb = new LineBorder(Color.red, 5, true);

LineBorder는 컴포넌트 주위에 라인을 표현하는 보더로 라인의 두께를 설정할 수 있다 .
매개변수로는 Color.red는 주위라인의 색깔이며
int 5는 라인의 두께 를 설정해줍니다
true는 라인의 형상을 보여주는 boolean값입니다.

5 . MatteBorder :

1
private MatteBorder bb = new MatteBorder(5, 10, 15, 20, im);

MatteBorder는 테두리의 두께를 설정하여 라인이나 이미지를 넣을 수 있는 보더이다.
매개변수로는 top, left, bottom, right로서 insets를 준다 다시말해 Padding처럼 내부의 공백을 표현

6 . TitledBorder :

1
private TitledBorder bb = new TitledBorder(lb, "title", TitledBorder.CENTER, TitledBorder.BELOW_BOTTOM);

  • TitledBorder는 컴포넌트 주위로 제목을 줄수 있는 보더이다 라인과 같은 다른 보더의 효과도
    힘께 줄수 있다 .

ex )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;

class Round22_Ex07_Sub extends JFrame {
private Container com;
private FlowLayout fl = new FlowLayout();
private JButton bt = new JButton("testtestestes");
// private BovelBorder bb = new BevelBorder(BevelBorder.RAISED, Color.green,
// Color.red,Color.blue,Color.darkGray);
// private EmptyBorder bb = new EmptyBorder(3, 5, 7, 9);
// private EtchedBorder bb = new
// EtchedBorder(EtchedBorder.LOWERED,Color.green, Color.red);
// private LineBorder bb = new LineBorder(Color.red, 5, true);
// private ImageIcon im = new ImageIcon("bbb.gif");
// private MatteBorder bb = new MatteBorder(, 10, 15, 20, im);
// private LineBorder bb = new LineBorder(Color.red, 3);
// private TitledBorder bb = new TitledBorder(lb,
// "Title",TitledBorder.CENTER, TitledBorder.BELOW_BOTTOM);
private LineBorder lb = new LineBorder(Color.red, 3);
private SoftBevelBorder sbb = new SoftBevelBorder(SoftBevelBorder.RAISED);
private CompoundBorder bb = new CompoundBorder(lb, sbb);

// 두개의 보더를 합칠때 사용한다 . LineBorder와 SoftBevelBorder를 합쳤다.
public Round22_Ex07_Sub() {
super("Test");
this.init();
this.start();
this.setSize(400, 300);
this.setVisible(true);
}

public void init() {
con = this.getContentPane();
con.setLayout(fl);
bt.setBorder(bb);// Border를 표현하는 부분
con.add(bt);
}

public void start() {
}
}

public class Round22_Ex07 {
public static void main(String[] ar) {
Round22_Ex07_Sub es = new Round22_Ex07_Sub();
}
}

Share