![[Swing] JFrame 계산기 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fm0fRg%2FbtqFniBpru4%2FAAAAAAAAAAAAAAAAAAAAABwC1S5UaVaj-hIgPWueKJ5f2zFmBUdvqROwzcsvuTVs%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DRa5EIYUXiR97lJyy%252FuzJ1ACV1Xg%253D)
package swing.frame; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class Calculator extends JFrame { public Calculator(String title) { //this없어도됨 //title설정 setTitle(title); //size설정(width,height) setSize(230, 400);..
![[Swing] GridLayoutFrame](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FOMhOZ%2FbtqFnuVYC3b%2FAAAAAAAAAAAAAAAAAAAAAHNCXtyu7cyBbdLGC7b3Xjvhy9nPY-t_llcKs2ZIbmtq%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DX5Lus6dYj851DwyMFe8%252FpYUu7T8%253D)
package swing.frame; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class GridLayoutFrame extends JFrame { public GridLayoutFrame(String title) { //this없어도됨 //title설정 setTitle(title); //size설정(width,height) setSize(300, 300); //위치 설정(x,y) setLocation(800, 300); //종료관리(보통 EXIT_ON_CLOSE를 사용, 상수3) s..
![[Swing] BorderLayout](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F4ATmM%2FbtqFnFbQ3v0%2FAAAAAAAAAAAAAAAAAAAAAIffZFreKkAx7qxChRdYWVjh6oi8rwzcgRnVnsmGJoem%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DdcqxzU6IE8bOjc6OcJ5tHHpk%252BRA%253D)
Swing의 기본 레이아웃은 BorderLayout이기 때문에 선언을 해주지 않아도 괜찮다. package swing.frame; import java.awt.BorderLayout; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; public class BorderLayoutFrame extends JFrame { public BorderLayoutFrame(String title) { //this없어도됨 //title설정 setTitle(title); //size설정(width,height) setSize(300, 300); //위치 설정(x,y) setLocation(800, 300); //종료관리(..
![[Swing] FlowLayout](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FXypDV%2FbtqFnEjHuBl%2FAAAAAAAAAAAAAAAAAAAAAAlzrj9HrfBvyJ7_gqmOZeKpQde-RF-_G0nHnDgT8U4n%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DDlDEQLrvt75nnSCm0DoAEM0HYDM%253D)
package swing.frame; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; public class FlowLayoutFrame extends JFrame { public FlowLayoutFrame(String title) { //this없어도됨 //title설정 setTitle(title); //size설정(width,height) setSize(300, 300); //위치 설정(x,y) setLocation(800, 300); //종료관리(보통 EXIT_ON_CLOSE를 사용, 상수3) setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //레이아웃 setL..
![[안드로이드 기본] 커스텀 뷰를 사용하여 그리기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FQT2Ir%2FbtqEcGjJNgC%2FAAAAAAAAAAAAAAAAAAAAAI-Pa9V5JZly-dTpEz6MEP28U3msuiG9rZaBGBPJq_kz%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D6riOzrpO8VhRzjBy4o%252F3shdt5uQ%253D)
package com.example.graphic; import androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Bundle; import android.view.View; class MyView extends View { public MyView(Context context){ super(context); setBackgroundColor(Color.BLUE); } protected void onDraw(Canvas can..