기본 컴포넌트를 확인해 보자.
package ch02;
import java.awt.FlowLayout;
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("button");
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(button);
add(checkBox);
}
public static void main(String[] args) {
new MyComponents();
}
}
package ch02;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyFramePanel extends JFrame {
private JButton button1;
private JButton button2;
// 패널 추가하기
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.blue);
panel2 = new JPanel();
panel2.setBackground(Color.black);
button1 = new JButton("button1");
button2 = new JButton("button2");
}
private void setInitLayout() {
// 루트 패널 --> BorderLayout
add(panel1, BorderLayout.CENTER);
add(panel2, BorderLayout.SOUTH);
panel1.setLayout(new FlowLayout());
panel1.add(button1);
panel2.setLayout(new FlowLayout());
panel2.add(button2);
setVisible(true);
}
public static void main(String[] args) {
new MyFramePanel();
}
}
package ch02;
import java.awt.FlowLayout;
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("button");
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(button);
add(checkBox);
}
public static void main(String[] args) {
MyComponents components = new MyComponents(); // 객체의 주소 값
components.textField.setText("반가워");
}
}
package ch02;
public class MainTest1 {
public static void main(String[] args) {
new MyDrawFrame();
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------
package ch02;
import java.awt.Graphics;
/*
* 패널에 그림을 그리는 방법
* 자바 문법 - 중첩 클래스 ( 클래스 안에 클래스를 만드는 것)
* 외부 클래스, 내부 클래스, outer class, inner class
*/
import javax.swing.JFrame;
import javax.swing.JPanel;
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 {
// paint = o;
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawRect(100, 100, 50, 100);
g.drawRect(200, 200, 150, 150);
// int x1, int y1, int x2, int y2
g.drawLine(250, 300, 300, 300);
g.drawOval(100, 150, 200, 300);
g.drawString("반가워", 400, 400);
g.drawString("⭐⭐", 500, 500);
} // end of inner class
}
}
package ch02;
public class MainTest1 {
public static void main(String[] args) {
new MyDrawFrame();
}
}'Java' 카테고리의 다른 글
| 2024.04.29 Swing - 3 (이미지 올리기) (0) | 2024.04.29 |
|---|---|
| 2024.04.29 JAVA 유용한 클래스 Exception(예외처리) (0) | 2024.04.29 |
| 2024.04.26 인터페이스 활용 (0) | 2024.04.26 |
| 2024.04.26 JAVA 유용한 클래스 String, StringBuffer 클래스 (0) | 2024.04.26 |
| 다형성 (Polymorphism) 업캐스팅, 다운캐스팅, 인터페이스 (0) | 2024.04.25 |