어제 그렇게 비가 오더니
역시나 오늘 더웠다
이제부터 본격적인 더위인걸까
장마도 아직 안온 시점인데
벌써부터 이러면 진짜 곤란하다
대학생들이야 이제 기말이니
다들 바쁠것으로 안다
덕분에 내 블로그는 한가하다
뭐 언제나 그랬지만
이제는 방문자 수가 좀 늘었으면 싶다
오늘 푸념은 여기까지 하고
복습을 해보자
체크박스 라디오버튼 그외
기타 몇가지에 대해 알아볼것이다
아마 설명이 그닥 들어가지
않을것이다
딱히 그럴필요가 없으니 말이다
소스를 보고 직접 치며 이해하자
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class MyFrame1 extends JFrame {
private JButton btn1;
private JButton btn2;
public MyFrame1() {
init();
setDisplay();
showFrame();
}
private void init() {
btn1 = new JButton("button1");
btn2 = new JButton("button2");
}
private void setDisplay() {
// LayoutManager 제거
// 배치 : 위치, 크기
setLayout(null);
btn1.setSize(100, 100);
btn1.setLocation(0, 0);
btn2.setSize(200, 200);
btn2.setLocation(100, 100);
add(btn1);
add(btn2);
}
private void showFrame() {
setTitle("Bad Case : no LayoutManager");
setSize(500, 500);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MyFrame1();
}
}
전에 배웠던걸 복습한다 생각으로
첫번째 예제는 눈으로 슥 보자
메소드 이름을 간략히 말하자면
init 은 초기화
setDisplay는 디스플레이 설정
showFrame은 프레임 설정
이라고 보면 된다
import java.awt.*;
import javax.swing.*;
public class MyFrame2 extends JFrame {
private JLabel lblText;
private JLabel lblImg;
public MyFrame2() {
init();
setDisplay();
showFrame();
}
private void init() {
lblText = new JLabel("이거슨 레이블", JLabel.CENTER);
Font font = new Font(Font.DIALOG, Font.BOLD | Font.ITALIC, 15);
lblText.setFont(font);
// 투명 -> 불투명
lblText.setOpaque(true);
lblText.setBackground(Color.YELLOW);
Image img = Toolkit.getDefaultToolkit().getImage("icon.png");
ImageIcon icon = new ImageIcon(img);
lblImg = new JLabel(icon);
lblImg.setText("이거슨 브이");
lblImg.setFont(font);
lblImg.setForeground(Color.RED);
lblImg.setHorizontalTextPosition(JLabel.CENTER);
lblImg.setVerticalTextPosition(JLabel.TOP);
}
private void setDisplay() {
add(lblText, BorderLayout.NORTH);
add(lblImg, BorderLayout.CENTER);
add(lblText, BorderLayout.SOUTH);
}
private void showFrame() {
setTitle("Components");
setSize(500, 400);
setLocation(500, 0);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MyFrame2();
}
}
label에 대한 코드이다
투명도와 색깔을 지정할수 있고
Toolkit을 활용해 이미지도
넣을수 있게 되어있다
더불어 정렬에 대한것도
나오니 직접 치고
실행해 보길 바란다
어째 swing부분은
별다르게 설명할게 없는듯 싶다
직접 해보면 결과가
눈으로 볼수 있으니 말이다
import java.awt.BorderLayout; import javax.swing.*; public class MyFrame3 extends JFrame { private JTextField tfInput; private JLabel lblInfo; private JButton btnOk; private JPasswordField pfInput; private JTextArea taInput; public MyFrame3() { init(); setDisplay(); showFrame(); } private void init() { int size = 20; tfInput = new JTextField(size); tfInput.setText("size : " + size); lblInfo = new JLabel("이름을 입력하시오"); btnOk = new JButton("확인"); pfInput = new JPasswordField(20); pfInput.setText("JAVA King"); taInput = new JTextArea(10, 40); } private void setDisplay() { JPanel pnlNorth = new JPanel(); pnlNorth.add(lblInfo); pnlNorth.add(tfInput); pnlNorth.add(btnOk); add(pnlNorth, BorderLayout.NORTH); add(pfInput, BorderLayout.SOUTH); JPanel pnlCenter = new JPanel(); JScrollPane scroll = new JScrollPane(taInput); pnlCenter.add(scroll); add(pnlCenter, BorderLayout.CENTER); } private void showFrame() { setTitle("user inputs"); setSize(500, 400); setLocation(400, 0); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); // String str = pfInput.getText(); char[] pw = pfInput.getPassword(); System.out.println(String.valueOf(pw)); } public static void main(String[] args) { new MyFrame3(); } }
패스워드 부분은 처음 나온듯 싶다
앞으로 쓸 부분에서 아주 후반에
가면 그때 복습한 내용으로
회원 관리가 있다
그 때 이런 UI를 자주 접할것 같다
지금은 그냥 아웃라인만
설정할수 있다는것에 만족하자
사실 이때가 제일 편했다
안에 기능 들어가고 나서부터는
공부하는 시간이 확 늘었기 때문
import java.awt.*;
import javax.swing.*;
public class MyFrame4 extends JFrame {
private JCheckBox cbBusan;
private JCheckBox cbSeoul;
private JCheckBox cbEtc;
private JRadioButton rbtnMale;
private JRadioButton rbtnFemale;
private JToggleButton tbtn;
public MyFrame4() {
init();
setDisplay();
showFrame();
}
private void init() {
cbBusan = new JCheckBox("부산", true);
cbSeoul = new JCheckBox("서울");
cbEtc = new JCheckBox("기타");
rbtnMale = new JRadioButton("남자");
rbtnFemale = new JRadioButton("여자", true);
ButtonGroup group = new ButtonGroup();
group.add(rbtnMale);
group.add(rbtnFemale);
tbtn = new JToggleButton("이거슨 토글버튼");
}
private void setDisplay() {
JPanel pnlCenter = new JPanel();
pnlCenter.setLayout(new GridLayout(1, 2));
// alt + shift + t -> n : rename
JPanel pnlLeft = new JPanel();
pnlLeft.add(cbBusan);
pnlLeft.add(cbSeoul);
pnlLeft.add(cbEtc);
pnlCenter.add(pnlLeft);
JPanel pnlRight = new JPanel();
pnlRight.add(rbtnMale);
pnlRight.add(rbtnFemale);
pnlCenter.add(pnlRight);
add(pnlCenter, BorderLayout.CENTER);
add(tbtn, BorderLayout.SOUTH);
}
private void showFrame() {
setTitle("Buttons");
setSize(600, 300);
setLocation(300, 0);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
System.out.println("cb1 : " + cbBusan.isSelected());
System.out.println("cb2 : " + cbSeoul.isSelected());
}
public static void main(String[] args) {
new MyFrame4();
}
}
체크박스와 라디오버튼이 나온다
말그대로 체크는 네모 모양에
복수개 선택이 가능하다
라디오는 동그란 모양에
단수개 선택이 가능하다
buttonGroup에 집중하며
코딩해보고 실행해보길 바란다
앞에서 말했듯이
그냥 치고 결과를 눈으로
보는게 제일 빠르게 학습
할수 있는것 같다
'IT > 자바' 카테고리의 다른 글
자바 C언어 난이도 차이 어떻게 생각하세요? (0) | 2017.10.11 |
---|---|
자바 border 외 한가지 실습 (0) | 2017.06.11 |
연습문제 풀이 (0) | 2017.06.08 |
FlowLayout GridLayout 그리고 ComplexLayout (0) | 2017.06.07 |
이클립스 단축키 BorderLayout 외 몇가지 (0) | 2017.06.05 |
댓글