package ch02;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.image.ComponentSampleModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class MyComponents extends JFrame {
private JButton button;
private JLabel label;
private JTextField textField;
private JPasswordField passwordField;
private JCheckBox checkBox;
public MyComponents() {
initData();
setInitLayout();
}
private void initData() {
setTitle("컴포넌트 확인");
setSize(800, 800);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
button = new JButton("JButton");
label = new JLabel("글자를 띄우는 컴포넌트");
textField = new JTextField("아이디입력", 20);
passwordField = new JPasswordField("비번입력", 20);
checkBox = new JCheckBox("동의");
}
private void setInitLayout() {
setLayout(new FlowLayout());
setVisible(true);
add(button);
add(label);
add(textField);
add(passwordField);
add(checkBox);
}
public static void main(String[] args) {
MyComponents componets = new MyComponents();
componets.textField.setText("반가워");
}
}
package ch02;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyFramePanel extends JFrame {
private JButton button1;
private JButton button2;
private JButton button3;
// 패널 추가하기
private JPanel panel1;
private JPanel panel2;
public MyFramePanel() {
initData();
setInitLayout();
}
private void initData() {
setTitle("패널추가 연습");
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel1 = new JPanel();
panel1.setBackground(Color.LIGHT_GRAY);
panel2 = new JPanel();
panel2.setBackground(Color.DARK_GRAY);
button1 = new JButton("button1");
button2 = new JButton("button2");
button3 = new JButton("button3");
}
private void setInitLayout() {
// 루트 패널 --> BorderLayout
add(panel1, BorderLayout.CENTER);
add(panel2, BorderLayout.SOUTH);
panel1.add(button1);
panel2.add(button2);
panel2.add(button3);
setVisible(true);
}
public static void main(String[] args) {
new MyFramePanel(); // 객체의 주소 값
}
}
package ch02;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
* 패널에 그림을 그리는 방법 자바 문법 - 중첩 클래스(=클래스 안의 클래스를 만드는 것) -> 내부 클래스 . 외부 클래스
* (outer/inner) Class
*/
public class MyDrawFrame extends JFrame {
// 내부 클래스를 외부 클래스에서 사용하려면
// 멤버로 가지고 있어야 한다.
MyDrawPanel myDrawPanel;
public MyDrawFrame() {
initData();
setInitLayout();
}
private void initData() {
setTitle("내부 클래스를 활용한 그림 연습");
setSize(600, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myDrawPanel = new MyDrawPanel();
}
private void setInitLayout() {
add(myDrawPanel);
setVisible(true);
}
// 내부 클래스 만들어 보기
// 가독성을 높이기 위해 사용
// paint -> 좌표값으로 x = 0, y = 0
// JPanel 에 있는 기능을 확장해보자.
class MyDrawPanel extends JPanel {
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawRect(200, 200, 50, 100);
g.drawRect(300, 300, 300, 300);
g.drawOval(100, 150, 200, 300);
g.drawString("반가워", 400, 500);
g.drawString("⭐", 500, 500);
}
} // end of inner class
public static void main(String[] args) {
MyDrawFrame drawframe = new MyDrawFrame();
}
}
'Java' 카테고리의 다른 글
Swing - (이미지 겹치는 방법) (0) | 2024.04.29 |
---|---|
Swing - (이미지 올리기) (0) | 2024.04.29 |
Swing - BorderLayout (0) | 2024.04.29 |
Swing - FlowLayout (0) | 2024.04.29 |
Exception(예외처리) (0) | 2024.04.29 |