'JCreative!/Java'에 해당되는 글 4건
Splash Screen에 PrograssBar 만들기! :: 2007/03/25 22:18
한국 썬 개발자 네트워크 여기저기를 들쑤시고 다니던 도중에,
Splash Screen 에 대한 소스를 발견했습니다.
Splash Screen 이란, 어떤 프로그램을 처음 실행하였을 경우 로딩 시간이 길 경우를 대비하여 미리 이미지를 띄워 프로그램이 로딩 중이거나 로딩 상황을 알리는데 사용하는데요.
뭐 예를 들어 이클립스를 처음 실행하고자 하는 경우 다음과 같은 화면이 뜨죠.

사실 지금 캡쳐화면에선 보이지 않지만, 이미지 아래쪽에 PrograssBar가 떠서 로딩 상황을 알리죠.
그 소스에서는 그냥 이미지 한 가운데 사각형을 그리면서 색깔만 바꿔주는 예제였는데요,
제 입맛에 맞게 아래쪽에 PrograssBar 를 그려주는 걸로 바꿔 봤습니다.
소스는 다음과 같습니다.
import javax.swing.*;
import java.awt.*;
import java.util.*;
public class ExtendedSplash {
public static void main(String args[]) {
Runnable runner = new Runnable() {
public void run() {
// 생성된 Splash Screen을 반환한다.
SplashScreen splash = SplashScreen.getSplashScreen();
// Splash Image를 Graphics2D의 인스턴스로 받는다.
Graphics2D g = splash.createGraphics();
// Splash 된 Image의 사이즈를 구한다.
Dimension dim = splash.getSize();
// Image 하단에 그려질 PrograssBar 배경 사각형 그리기
g.setColor(Color.GRAY);
// (x좌표, y좌표: 그려질사각형의 높이만큼 뺀다, 너비, 높이)
g.fillRect(0, dim.height - 20, dim.width, 20);
// 현재 진행 상황에 맞춰 그려질 Prograss 사각형
g.setColor(Color.GREEN);
// i가 Splash Image의 너비에 다다를 때까지
// 12에서 10은 그려질 사각형의 너비, 2는 사각형간의 간격이다.
for (int i=0; i< dim.width; i += 12) {
g.fillRect(i, dim.height - 20, 10, 20);
splash.update();
// 0.5 초의 간격으로 사각형을 그린다
// 실제로 이 부분에 로딩에 따른 작업 간격을 설정해 주는 부분이다.
try {
Thread.sleep(500);
} catch (InterruptedException ignored) {
}
}
JFrame frame = new JFrame("Splash Me2");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("프로그램이 시작되었습니다~!", JLabel.CENTER);
frame.add(label, BorderLayout.CENTER);
frame.setSize(300, 95);
frame.setVisible(true);
}
};
EventQueue.invokeLater(runner);
}
}
실제로 중요한 부분은 굵은 글씨입니다.
워낙 간단한 소스라서 쉽게 이해 하실 줄로 믿습니다.
소스를 보면 Splash Screen으로 띄워 줄 이미지를 설정하는 부분이 없습니다.
이는 실행할 때 지정해 줘야 하는데요.
다음과 같이 실행하면 됩니다.
java -splash:MyImage.png ExtendedSplash
이것보다 보다 효과적인 방법은 manifest 파일로 관리하는 겁니다.
다음과 같은 manifest.mf 파일을 만듭니다.
Manifest-Version: 1.0
Main-Class: ExtendedSplash
SplashScreen-Image: MyImage.png
jar -mcvf manifest.mf Splash.jar HelloSplash*.class MyImage.png
java -jar Splash.jar
Splash Screen 으로 사용 가능한 이미지 포멧은 png, jpg, gif 등이라고 명시하고 있네요.
이 소스로 제가 만든 Splash Screen 입니다.
이미지의 모델은 제 여친입니다. ^^땀


Splash Screen의 PrograssBar 가 꽉차게 되면 프로그램이 시작됩니다.
원래 이미지에 PrograssBar 크기만큼의 영역을 더 잡아보려고 삽질을 해봤으나,
부족한 저의 실력으론 힘들더군요.
아예 이미지 하단에 처음부터 PrograssBar의 여유영역을 만들어주는것도 좋을 듯 합니다.
그럼 유용하게 사용하세요~^^
방학때 강의한 자바 PPT 자료 :: 2007/03/11 09:48

방학중에 동아리에서 교육한 자료들을 공개 합니다.
PPT로 작성하다보니 자세한 설명은 생략되어 있네요.
모르시는 분은 그냥 한번 쓰~윽 훑어 볼 수 있는 내용이고,
좀 공부해보신 분들은 재미로 한번 보시는 것도 나쁘진 않을듯 하네요. ^^
중간 중간 빈 자료가 있는데, 이때는 동아리 사정상 교육을 안했던 때입니다.
중간에 자료가 끊긴것은 아닙니다. ^^
PDF 문서로 만들어주는 자바 라이브러리입니다. :: 2006/08/30 13:37
http://www-128.ibm.com/developerworks/java/library/os-javapdf/index.html
이곳에서 간단한 예제를 살펴볼 수가 있는데요.
링크를 잘못해놨는지 소스만 다운로드 되더군요. ㅡ,ㅡ땀
라이브러리는 여기 있습니다.
http://www.lowagie.com/iText/download.html
이곳에서 소스와 컴파일된 라이브러리를 다운받을 수 있습니다.
이곳에서 라이브러리를 받아 위의 예제를 실행시키면 c:\ 에 PDF 파일이 하나 자동 생성됩니다.
소스 자체에서 PDF 문서를 만들어 주는데요.
자바 어플리케이션에서 다른 문서를 불러들여와서 PDF로 바꿔주는 프로그램을 만드는데도 응용이 가능하겠죠?

어서 빨리 에이콘 출판사에서 번역해주길 바랄 뿐입니다.
그 전에 취미 삼아서 공부 한번 해봐야겠네요.
썬, 프로그래머들이여! 오픈 소스 자바를 염려하지 말라 :: 2006/08/18 10:48
자바 SE가 오픈 소스가 되어도 대부분의 자바 프로그래머에게는 아무런 차이가 없다고 썬의 오픈 소스 최고 책임자가 밝혔다.
화요일에 런던에서 브리핑을 하면서 사이몬 핍스는 Builder UK에게 자바를 사용하는 프로그래머들이 자신의 플랫폼에서 오픈 소스를 사용할 수 있는지 걱정할 필요가 없다고 분명하게 말했다.
"오픈 소스 자바로 인해 크게 달라지는 것이 있다고는 생각하지 않는다. 그것이 오픈 소스 자바 SE에 대한 우리의 오랜 방침이다. 정말 염려할 사람은 극히 드물다."라고 핍스는 말했다. "사실, 대부분의 자바 개발자들이 짧은 기간 동안 이곳에서 진행되고 있는 일로 인해 어떤 식으로는 영향을 받을 것이라고는 생각하지 않는다."
자바를 오픈 소스로 만들겠다는 썬의 발표는 고위 경영진들이 실제로 프로젝트가 진행 중이라는 암시를 여러 차례 흘린 후에 나온 것이다. 썬은 과거에 자바를 신속하게 공개하지 않는다고 비난을 받았는데, 코드 공개가 지연된 것은 대체로 썬이 그렇게 할 권리가 있는지 확인하는 법률적인 검토 때문이었다고 이 회사는 밝혔다.
하지만, 핍스는 자바를 사용하는 개발자들은 자바의 내부 요소에 관심이 없다고 생각한다고 말했다. "자바 SE에 대해 불평하는 대부분의 사람들에게 정말로 문제가 되는 것은 소스 코드를 들여다보면서 인생의 대부분을 보내고 싶다는 것이라기 보다는 그것이 데비안에 포함되어 있지 않다는 것이다."라고 그는 말했다.
하지만, 자바 프로그래머들이 사용하는 컴포넌트 주위에 오픈 소스 프로세스를 배치하면 질이 높아진다고 핍스는 말했다. "버그를 찾아내는 사람은 직접 버그를 수정하고, 메일링 리스트를 확인하여 그 버그 수정판을 그 코드 커미터에게 제출할 수 있는 기회가 있다."
핍스는 이 상황은 다른 오픈 소스 프로젝트의 경우와 마찬가지라고 설명하면서도 그래도 소프트웨어를 오픈 소스로 만들면 이득이 있다는 주장은 굽히지 않았다. "리눅스 커널을 생각해 보라. 리눅스 커널에 도움을 줄 수 있는 사람은 거의 없지만, 그렇다고 그것을 오픈 소스로 만드는 것이 중요하지 않다는 의미는 아니다. 그것은 단순히 리눅스 커널 커미터가 되려는 소명 의식을 가진 사람이 많지 않다는 의미일 뿐이다."라고 그는 말했다.
코드를 프로젝트로 되돌려 보내는 프로그래머 그룹은 전체 자바 개발자 수에 비하면 극히 적은 수일 것으로 예상된다. "얼마나 많은 사람들이 오픈 소스 자바 SE 커뮤니티를 구성할 것인지는 모르지만, 몇 백 명 이상이 될 가능성은 없다."고 핍스는 말했다. 관심을 가질 사람들의 수는 방대하지만, 실제로 코드를 수정하는 숫자는 상당히 적을 것이다."
무슨 생각으로 말을 하는건지...
누가 자바 소스 코드 보면서 인생의 대부분을 보내고 싶어하겠습니까만 짬짬히 들여다보는 상당수의 천재 프로그래머들을 무시는 발언으로 밖에는 보이지 않네요.
리눅스 커널과 자바 소스 코드는 비교 대상이 아니지요...




1주차(금).ppt
2주차(금).zip