반응형
날씨가 너무나도 좋다
약간 쌀쌀하면서도
기분 좋아지게 해준다
오늘 12시간 넘게 잤다
확실히 피곤함이 사라졌다
이틀전에 뭘좀 한다고
밤을 샜더니 기절한듯 잤다
나이 앞에 숫자가 3으로
바뀌니까 체력이 확 떨어진듯 싶다
4자로 바뀌어버리면
거의 식물인간이 될지도 모르겠다
그렇게 되기전에
오늘도 복습을 해보자
이번편은 그냥 간단한
실습 두가지를 볼것이다
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
public class BorderEx extends JFrame {
private JPanel pnlMain;
private Font font;
private void addLabel(Border border, String text) {
JLabel lbl = new JLabel(text, JLabel.CENTER);
lbl.setFont(font);
lbl.setBorder(border);
pnlMain.add(lbl);
}
public BorderEx() {
font = new Font(Font.DIALOG, Font.BOLD, 20);
pnlMain = new JPanel(new GridLayout(0, 1, 0, 10));
Insets insets = new Insets(10, 10, 10, 10);
pnlMain.setBorder(
// 시계반대방향(위, 왼쪽, 아래, 오른쪽)
new EmptyBorder(insets)
);
addLabel(null, "Default");
TitledBorder tBorder = new TitledBorder("this is a title");
addLabel(tBorder, "TitledBorder");
tBorder = new TitledBorder("title");
tBorder.setTitleJustification(TitledBorder.RIGHT);
addLabel(tBorder, "RIGHT");
tBorder = new TitledBorder("title");
tBorder.setTitlePosition(TitledBorder.ABOVE_BOTTOM);
addLabel(tBorder, "ABOVE_BOTTOM");
tBorder = new TitledBorder("title");
tBorder.setTitlePosition(TitledBorder.ABOVE_TOP);
addLabel(tBorder, "ABOVE_TOP");
tBorder = new TitledBorder("title");
tBorder.setTitlePosition(TitledBorder.BELOW_BOTTOM);
addLabel(tBorder, "BELOW_BOTTOM");
tBorder = new TitledBorder(
new LineBorder(Color.BLACK, 1),
"TitledBorder + LineBorder"
);
addLabel(tBorder, "ComplexTitledBorder");
tBorder = new TitledBorder("Red Title");
tBorder.setTitleColor(Color.RED);
tBorder.setTitleFont(new Font(Font.SERIF, Font.ITALIC, 15));
addLabel(tBorder, "TitledBorder");
LineBorder line = new LineBorder(Color.BLACK, 1);
addLabel(line, "LineBorder");
EtchedBorder eBorder = new EtchedBorder(EtchedBorder.LOWERED);
addLabel(eBorder, "EtchedBorder-LOWERED");
eBorder = new EtchedBorder(EtchedBorder.RAISED);
addLabel(eBorder, "EtchedBorder-RAISED");
BevelBorder bBorder = new BevelBorder(BevelBorder.LOWERED);
addLabel(bBorder, "BevelBorder-LOWERED");
bBorder = new BevelBorder(BevelBorder.RAISED);
addLabel(bBorder, "BevelBorder-RAISED");
JScrollPane scroll = new JScrollPane(pnlMain);
/*
* Policy
* 1. VERTICAL
* - ScrollPaneConstants.VERTICAL_SCROLLBARS_AS_NEEDED(default)
* - ScrollPaneConstants.VERTICAL_SCROLLBARS_ALWAYS
* - ScrollPaneConstants.VERTICAL_SCROLLBARS_NEVER
*
* 2. HORIZONTAL
* - ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED(default)
* - ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS
* - ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER
*/
scroll.setVerticalScrollBarPolicy(
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED
);
scroll.setHorizontalScrollBarPolicy(
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS
);
add(scroll, BorderLayout.CENTER);
setTitle("BorderEx");
setSize(400, 300);
setLocation(300, 0);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new BorderEx();
}
}
첫번째는 border에 대한 내용이다
이것을 이용하여 우리가 쓰고자
하는 컴포넌트 설정이 가능하다
스크롤을 넣고 싶다면 그렇게 할수 있다
외곽에 타이틀을 넣고 싶다면
또 그렇게 할수 있다
실행을 해보면 알겠지만
위 코드에서 넣어준 내용대로
버튼이 쪼르르 나온다
코드의 문맥과
화면을 번갈아 보면서
어떻게 적용되었는지
살펴보면 금새 이해할수 있을것이다
스크롤을 넣었을때
좌우 혹은 상하
옵션도 주석으로
잘 설명 되어 있으니
참고하길 바란다
import java.awt.BorderLayout;
import javax.swing.*;
public class MyFrame1 extends JFrame {
private JButton btnNorth;
private JButton btnWest;
private JButton btnEast;
private JButton btnSouth;
private JButton btnUp;
private JButton btnLeft;
private JButton btnRight;
private JButton btnDown;
private JButton btnToTop;
private JButton btnToLeft;
private JButton btnToRight;
private JButton btnToBottom;
private JButton btnO;
public MyFrame1() {
init();
setDisplay();
showFrame();
}
private void showFrame() {
setTitle("Answer1");
setSize(400,300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
private void setDisplay() {
JPanel pnlCenterCenter = new JPanel(new BorderLayout());
pnlCenterCenter.add(btnToTop, BorderLayout.NORTH);
pnlCenterCenter.add(btnToBottom, BorderLayout.SOUTH);
pnlCenterCenter.add(btnToLeft, BorderLayout.WEST);
pnlCenterCenter.add(btnToRight, BorderLayout.EAST);
pnlCenterCenter.add(btnO, BorderLayout.CENTER);
JPanel pnlCenter = new JPanel(new BorderLayout());
pnlCenter.add(btnLeft, BorderLayout.WEST);
pnlCenter.add(btnUp, BorderLayout.NORTH);
pnlCenter.add(btnRight, BorderLayout.EAST);
pnlCenter.add(btnDown, BorderLayout.SOUTH);
pnlCenter.add(pnlCenterCenter, BorderLayout.CENTER);
add(btnNorth, BorderLayout.NORTH);
add(btnWest, BorderLayout.WEST);
add(btnEast, BorderLayout.EAST);
add(btnSouth, BorderLayout.SOUTH);
add(pnlCenter, BorderLayout.CENTER);
}
private void init() {
btnNorth = new JButton("North");
btnWest = new JButton("West");
btnEast = new JButton("East");
btnSouth = new JButton("South");
btnUp = new JButton("Up");
btnLeft = new JButton("Left");
btnRight = new JButton("Right");
btnDown = new JButton("Down");
btnToTop = new JButton("▲");
btnToLeft = new JButton("◀");
btnToRight = new JButton("▶");
btnToBottom = new JButton("▼");
btnO = new JButton("O");
}
public static void main(String[] args) {
new MyFrame1();
}
}
다음은 이전에 배웠던
BorderLayout에 대한 코드이다
잘 기억은 안나지만
수업 중에 누가 물어봐서
같이 실습을 해보았던것 같다
직접 따라쳐 보거나
실행한후 나오는 결과물을
직접 코딩해서
똑같이 만드는 연습을
하면 실력 향상에
많은 도움이 될것이다
오늘은 border 외
한가지 실습에
대해서 복습했다
아마 내일 포스팅을
또할수 있을것 같은데
ActionListener에 대해서
복습할것 같다
반응형
'IT > 자바' 카테고리의 다른 글
자바 C언어 난이도 차이 어떻게 생각하세요? (0) | 2017.10.11 |
---|---|
체크박스 라디오버튼 그외 기타 (0) | 2017.06.09 |
연습문제 풀이 (0) | 2017.06.08 |
FlowLayout GridLayout 그리고 ComplexLayout (0) | 2017.06.07 |
이클립스 단축키 BorderLayout 외 몇가지 (0) | 2017.06.05 |
댓글