- NEW초롱이의 하루
- kisa
- 길은 가면, 뒤에 있다
- C언어 예술가
- Zer0 day - Zer0 day
- Information Security
- Secure-EDU
- 앙큼한유채's 일상 Story
- Library of Ezbeat (잠정 폐쇄)
- The Factory
- 안드
- 모후모후의 커뮤니티
- 공학도의 잡다한 시선
- 안드2
- IT속에 코코아
- IP주소검색(whois)
- IP주소검색(좌표포함)
- 소프트웨어 경력 관리
- 해저 케이블 지도
- MAC주소검색
- IANA
- 포트번호검색
- 자신의IP확인
- 웹페이퍼캡처
- 나의패스워드보안등급
- 웹 취약점 분석
- IT용어정리
- GitHub
- 라이브러리 모음
- 웹마당넷
- 시스템콜참고
- BCD 변환
- 보안뉴스
- 코딩도장(C, Python)
- 백준알고리즘
- 코딩테스트 연습
- 웹 사이트 테스트
- 스크립트꾸미기
- ctf대회목록
- 전자신문
- hash 크랙
- CVE
- 도메인등록
- N클라우드
- BugBountyList
- 칼리공식사이트
- CR4FTING BOX
- 아스키코드 변환
- 웹 사이트 통계 및 평가
- PDF변환
- AWS 및 클라우드 정보
- 가상화 및 서버관련
- 티오리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 라즈베리파이
- 메소드
- centos docker
- docker
- Shell script
- Java
- API
- 그라파나
- 안드로이드
- System
- 자바
- Tkinter
- ACL
- 프로젝트
- LEVIATHAN
- 리눅스
- GUI
- nginx
- synology
- Linux
- 쉘 스크립트
- 쉘 스크립트 if문
- Python
- 클라우드
- JSP
- RaspberryPi
- 쉘 스크립트 기초
- Android
- GPIO
- 네트워크
- Today
- Total
IT창고
자바(JAVA) 실습 - GUI로 달력만들기 본문
조건
1. Grid 뷰를 이용하여 달력만들기
2. 콘솔창에서도 달력이 나오도록 만들기
3. 토요일은 파랑색 일요일은 빨강색으로 색입히기
소스코드
Main
public class Main {
public static void main(String[] args) {
Frame myFrame = new Frame("달력 프레임");
int frameWidth = 500;
int frameHeight = 300;
/** 달력용 **/
ArrayList<Integer> calArr = new ArrayList<>();
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH); //month는 0이 1월 11이 12월이다
int date = cal.get(Calendar.DATE);
int lastDay = cal.getActualMaximum(Calendar.DATE);
/** 이번달 세팅 **/
for (int i = 0; i < lastDay; i++) {
calArr.add(i+1);
}
/** 지난 달 세팅 완료 **/
cal.set(Calendar.DATE, 1); // 1일로 세팅
int yoil= cal.get(Calendar.DAY_OF_WEEK); // 1 일요일 ~ 7 토요일
int numOfPreMonth = yoil - 1;
cal.add(Calendar.MONTH, -1);
lastDay = cal.getActualMaximum(Calendar.DATE);
for (int i = 0; i < numOfPreMonth; i++) {
calArr.add(0, lastDay);
lastDay--;
}
/** 다음달 세팅 **/
cal.add(Calendar.MONTH, 1);
lastDay = cal.getActualMaximum(Calendar.DATE);
cal.set(Calendar.DATE, lastDay);
yoil= cal.get(Calendar.DAY_OF_WEEK);
int numOfNextMonth = 7 - yoil;
for (int i = 0; i < numOfNextMonth; i++) {
calArr.add(i+1);
}
/** 콘솔창으로 구현 **/
for (int i = 0; i < calArr.size(); i++) {
System.out.print(calArr.get(i)+", ");
if(i % 7 ==6){
System.out.println("");
}
}
/** 프레임으로 구현 **/
GridLayout gridLayout = new GridLayout(calArr.size() / 7, 7);
myFrame.setLayout(gridLayout);
for (int i = 0; i < calArr.size(); i++) {
//myFrame.add(new Button(calArr.get(i)+""));
Button tempBtn = new Button(calArr.get(i) + "");
if(i%7 ==0){
tempBtn.setForeground(Color.red);
}else if(i%7 ==6){
tempBtn.setForeground(Color.BLUE);
}
myFrame.add(tempBtn);
}
setFrame(frameWidth, frameHeight, myFrame);
}
private static void setFrame(int frameWidth, int frameHeight, Frame myFrame) {
myFrame.setSize(frameWidth, frameHeight); //사이즈 지정
myFrame.setResizable(false);
Dimension scr = Toolkit.getDefaultToolkit().getScreenSize();
int width = (int) scr.getWidth();
int height = (int) scr.getHeight();
myFrame.setLocation((width / 2) - (frameWidth / 2)
, (height / 2) - (frameHeight / 2)); //유동식 좌표
myFrame.setVisible(true);
myFrame.addWindowListener(new WindowAdapter() { // exit 종료 가능
@Override
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
결과화면
콘솔창과 프레임창이 제대로 출력이되었고 토요일과 일요일의 색깔도 입혔습니다. 달력 기준은 글 작성날짜인 2017/09/11 입니다.
'프로그래밍 > JAVA' 카테고리의 다른 글
자바(JAVA) 개발을 위한 메소드(Method) 모음3 (0) | 2017.09.17 |
---|---|
자바(JAVA)실습 - GUI 계산기 (0) | 2017.09.12 |
자바(JAVA) - GUI 프로그램 (0) | 2017.09.11 |
자바(JAVA)실습 - 클래스사용하기 (0) | 2017.09.02 |
자바(JAVA)실습 - 달력 만들기 (0) | 2017.08.22 |