전체 글 썸네일형 리스트형 AWT 그래픽과 이미지 그래픽 실행 순서와 호출법 실행순서 Frame을 상속받은 클래스의 객체 생성 public void update(Graphics g) { paint(g); } 호출 public void paint(Graphics g) {} 호출 Frame Open Thread 대기 상태 기본형태 class _Sub extends Frame { public _Sub() { super("제목"); this.init(); this.start(); this.setSize(300, 200); this.setVisible(true); } public void init() { } public void start() { } public void update(Graphics g) { paint(g); } public void paint(.. 더보기 Event 핸들러 Event와 관련 패키지들 닫기 버튼을 누르면 프로그램이 종료되는 예 import java.awt.*; import java.awt.event.*; public class Round19_Ex01 { public static void main(String[] args) { new Round19_Ex01_Sub(); } class Round19_Ex01_Sub extends Frame { .... private Button bt = new Button("닫기"); public Round19_Ex01_Sub() { .... } public void init() { .... } public void start() { bt.addActionEventListener(new ActionListener() { publ.. 더보기 AWT 컴포넌트 java.awt.Panel 컴포넌트 상속관계 java.lang.Object -> java.awt.Component -> java.awt.Container -> java.awt.Panel 예제1 import java.awt.*; public class Round18_Ex01 { public static void main(String[] ar) { new Round18_Ex01_Sub(); } class Round18_Ex01_Sub extends Frame { private Dimension dimen, dimen1; private int xpos, ypos; private Label lb = new Label("Test"); public Round18_Ex01_Sub() { super(); this.in.. 더보기 자바 폼과 프레임, 레이블, 기본 레이아웃 AWT 프레임과 레이블 import java.awt.*; public class Round17_Ex01 { public static void main(String[] ar) { Frame f = new Frame(); f.setSize(300, 200); // f.pack(); Dimension dimen = Toolkit.getDefaultToolkit().getScreenSize(); Dimension dimen1 = f.getSize(); int xpos = (int)(dimen.getWidth()/2 - dimen1.getWidth()/2); // 화면넓이/2 - Frame넓이/2 int ypos = (int)(dimen.getHeight()/2 - dimen1.getHeight()/2); // .. 더보기 Git 도구-7 - Subtree Merge Subtree Merge 서브모듈 시스템이 무엇이고 어디에 쓰는지 배웠다. 그런데 같은 문제를 해결하는 방법이 또 하나 있다. Git은 Merge하느 시점에 무엇을 Merge할지, 어떤 전략을 사용할지 결정해야 한다. Git은 브랜치 두 개를 Merge할 때에는 Recursive 전략을 사용하고 세 개 이상의 브랜치를 Merge할 때에는 Octopus 전략을 이용한다. 이 전략은 자동으로 선택된다. Merge할 브랜치가 두개면 Recursive 전략이 선택된다. Recursive 전략은 Merge하려는 두 커밋과 공통 조상 커밋을 이용하는 3-way merge를 사용하기 때문에 단 두 개의 브랜치에만 적용할 수 있다. Octopus 전략은 브랜치가 여러개라도 Merge할 수 있지만 비교적 충돌이 쉽게 일.. 더보기 Git 도구-6 - 서브모듈 서브모듈 프로젝트를 수행하다 보면 다른 프로젝트를 사용해야 하는 경우가 종종 있다. 보통 사용할 프로젝트들은 독립적으로 개발된 라이브러리들이다. 이런 상황에서 자주 생기는 이슈는 두 프로젝트를 별개로 다루면서도 그중 하나를 다른 하나 안에서 사용할 수 있어야 한다는 것이다. Atom 피드를 제공하는 웹사이트를 만든다고 가정하자. Atom 피드를 생성하는 코드는 직접 작성하지 않고 라이브러리를 가져다 쓰기로 했다. 그러면 CPAN이나 Ruby gem 같은 라이브러리 관리 도구를 사용하거나 해당 소스를 프로젝트로 복사해야 한다. 사실 라이브러리를 수정하는 것은 어렵다. 하지만 수정한 라이브러리를 모든 사용자가 이용할 수 있도록 배포하는 것은 더 어렵다. 그래서 프로젝트에 라이브러리 코드를 포함시켜서 수정하는.. 더보기 Git 도구-5 - Git으로 버그 찾기 Git으로 버그 찾기 파일 어노테이션 어떤 메서드에 버그가 있으면 git blame 명령으로 그 메서드의 각 줄을 누가 언제 마지막을 고쳤는지 찾아낼 수 있다. 첫 항목 그 줄을 마지막에 수정한 커밋의 SHA-1 값이다. 두 번째, 세번째 항목은 누가 언제 그 줄을 커밋했는지 보여준다. 그 뒤에 파일의 줄 번호와 내용을 보여준다. ^4832fe2 에서 ^표시는 해당줄이 처음 커밋했다는 뜻이다. 즉 그 이후 커밋이 한번도 없다는 뜻이다. $ git blame -L 12,22 simplegit.rb ^4832fe2 (Scott Chacon 2008-03-15 10:31:28 -0700 12) def show(tree = 'master') ^4832fe2 (Scott Chacon 2008-03-15 10:31.. 더보기 Git 도구-4 - 히스토리 단장하기 히스토리 단장하기 일하다 보면 커밋 히스토리를 수정해야할 때가 있는데, Git은 다음과 같은 일을 할 수 있다. Staging Area가 있어서 커밋할 파일을 고르는 일을 커밋하는 순간으로 미룰 수 있다. Stash 명령으로 하던일을 미룰 수 있다. 커밋 순서를 변경할 수 있다. 커밋 메시지와 커밋 파일도 변경할 수 있다. 여러개의 커밋을 합칠 수 있다. 하나의 커밋을 여러개로 분리할 수도 있다. 커밋 전체를 삭제할 수도 있다. 이러한 작업들은 다른 사람과 공유하기 전에 해야한다. 마지막 커밋을 수정하기 커밋 메시지를 수정하는 방법 $ git commit --amend 파일 목록을 수정하는 방법 $ git add OR git rm $ git commit --amend 이때 SHA-1 값이 바뀌기 때문에 .. 더보기 이전 1 2 3 4 5 6 7 ··· 9 다음