class Point {
private int x,y;
public Point(int x,int y) { this.x=x; this.y=y; }
public int getX() { return x; }
public int getY() { return y; }
protected void move(int x, int y) { this.x=x; this.y=y; }
}
class PositivePoint extends Point{
PositivePoint(){
super(0,0);
}
PositivePoint(int x,int y){
super(x,y);
if(x<0||y<0) super.move(0, 0);
}
protected void move(int x, int y) {
if(x>0&&y>0) {
super.move(x, y);
}
}
public String toString() {
return "("+getX()+","+getY()+")";
}
}
class Main{
public static void main(String[] args) {
PositivePoint p= new PositivePoint();
p.move(10,10);
System.out.println(p.toString()+"입니다.");
p.move(-5,5);
System.out.println(p.toString()+"입니다.");
PositivePoint p2=new PositivePoint(-10,-10);
System.out.println(p2.toString()+"입니다.");
}
}
*/
/*
abstract class PairMap{
protected String keyArray [];
protected String valueArray[];
abstract String get(String key);
abstract void put(String key, String value);
abstract void delete(String key);
abstract int length();
}
class Dictionary extends PairMap{
int cap;
int cur=0;
int len=0;
Dictionary(int cap) {
this.cap=cap;
keyArray=new String[cap];
valueArray=new String[cap];
}
String get(String key) {
for(int i=0;i<cap;i++) {
if(key.equals(keyArray[i])) {
return valueArray[i];
}
}
return null;
}
public void put(String key,String value) {
for(int i=0;i<cap;i++) {
if(key.equals(keyArray[i])) {
valueArray[i]=value;
return ;
}
}
keyArray[cur]=key;
valueArray[cur]=value;
cur++;
len++;
}
public void delete(String key) {
for(int i=0;i<cap;i++) {
if(key.equals(keyArray[i])) {
valueArray[i]=null;
len--;
return ;
}
}
}
int length() {
return len;
}
}
class Main{
public static void main(String[] args) {
Dictionary dic= new Dictionary(10);
dic.put("황기태", "자바");
dic.put("이재문", "파이선");
System.out.println("이재문의 값은"+dic.get("이재문"));
dic.put("이재문", "C++");
System.out.println("이재문의 값은"+dic.get("이재문"));
System.out.println("황기태의 값은"+dic.get("황기태"));
dic.delete("황기태");
System.out.println("황기태의 값은"+dic.get("황기태"));
dic.delete("이재문");
System.out.println("이재문의 값은"+dic.get("이재문"));
}
}
*/
/*
interface Shape{
final double PI=3.14;
void draw();
double getArea();
default public void redraw() {
System.out.print("--- 다시그립니다.");
draw();
}
}
class Circle implements Shape{
int r;
Circle(int r){
this.r=r;
}
public void draw() {
System.out.println("반지름이 "+r+"인 원입니다");
}
public double getArea() {
return r*r*PI;
}
}
class Main{
public static void main(String[] args) {
Shape donut = new Circle(10);
donut.redraw();
System.out.println("면적은 "+donut.getArea());
}
}
GUI : Graphical User Interface
컴포넌트 : 스티커들 JButton, JLabel , JTextField ....
컨테이너 : 종이 판 JFrame, JPanel ...
swing vs awt
awt : 중량 컴포넌트 ( 자바, 파이썬, ,,,,, 많은 곳에서 두루두루 사용되는 ) + Container 클래스
swing : 경량 컴포넌트 ( 자바에서 사용할 수 있도록 필요없는거 버리고 가볍게 ) 앞에 J가 붙는 애들
*/
/*
import java.awt.*;
import javax.swing.*;
class Main extends JFrame{
public Main() {
// 프레임의 내용들 설정
setTitle("범석's GUI");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //창닫으면 프로그램도 종료해라
Container cp = getContentPane(); // 현재 프레임을 cp라고 부르겠다
cp.setBackground(Color.orange);
cp.setLayout(null); // 내맘대로 배치할거야 (크기,위치 무조건 정해줘야)
//cp.setLayout(new FlowLayout()); // 컴퓨터 맘대로 배치해줘 (크기, 위치 내가 못바꿔)
// 버튼 생성
JButton b1 = new JButton("press!");
b1.setLocation(10, 15); //기본값 0
b1.setSize(100, 100); //기본값 0,0
b1.setBackground(Color.cyan); //배경색
b1.setForeground(Color.red); //글자색
cp.add(b1);
// 레이블 생성
JLabel la = new JLabel("레이블");
la.setLocation(15, 120);
la.setSize(50, 50);
la.setOpaque(true); //레이블의 배경색을 지정하려면 무조건 이 명령을 작성하기 (불투명도설정)
la.setBackground(Color.white);
Color c = new Color(255,255,0); // R, G, B 직접설정 가능 0~255
la.setForeground(c);
cp.add(la);
setSize(500,300); //필수1
setVisible(true); // 필수2
}
public static void main(String[] args) {
new Main();
}
}
import java.awt.*;
import javax.swing.*;
class Main extends JFrame{
Main(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container cp = getContentPane();
Color c=new Color(255,16,224);
cp.setBackground(c);
cp.setLayout(new BorderLayout());
JPanel center = new JPanel();
JPanel north = new JPanel();
center.setBackground(Color.white);
center.setLayout(new GridLayout(2,2));
north.setLayout(new FlowLayout());
cp.add(center,BorderLayout.CENTER);
cp.add(north, BorderLayout.NORTH);
// GridLayout g = new GridLayout(3,2);
// cp.setLayout(g);
// g.setHgap(10);
center.add(new JButton("1"));
JButton b2=new JButton("1");
center.add(b2);
b2.setBackground(Color.yellow);
JButton b3=new JButton("1");
center.add(b3);
b3.setBackground(Color.RED);
JButton b4=new JButton("1");
north.add(b4);
b4.setBackground(Color.green);
Color[] colors = {Color.black, Color.BLUE, Color.GRAY, Color.yellow, Color.MAGENTA};
JButton[] btns = new JButton[5];
for(int i=0;i<btns.length;i++) {
btns[i] = new JButton("button"+Integer.toString(i));
btns[i].setBackground(colors[i]);
north.add(btns[i]);
}
// Math.random() 0이상 1 미만의 랜덤 실수
// Math.random()*10 0이상 10미만의 랜덤 실수
// (int)(Math.random()*10) 0이상 10미만의 랜덤 "정수"
// (int)(Math.random()*10)+1 1이상 11미만의 랜덤 "정수"
setTitle("Frame practice");
setVisible(true);
setSize(500,300);
}
public static void main(String[] args) {
new Main();
}
}
*/
import java.awt.*;
import javax.swing.*;
class Main extends JFrame{
Main(){
Container cp=getContentPane();
cp.setLayout(new BorderLayout());
setVisible(true);
setSize(400,400);
JPanel nor=new JPanel();
nor.setSize(400,200);
cp.add(nor,BorderLayout.NORTH);
nor.setBackground(Color.DARK_GRAY);
JPanel cen=new JPanel();
cen.setSize(400,200);
JButton b1=new JButton();
nor.add(b1);
b1.setSize(100,100);
JButton b2=new JButton();
nor.add(b2);
b2.setSize(100,100);
JButton b3=new JButton();
nor.add(b3);
b3.setSize(100,100);
}
public static void main(String[] args) {
new Main();
}
}