목록IT (1471)
오늘도 공부
자바 게임 프로그래밍 강좌 6 하이텔 자바 동호회 김명현 (MadOx@hitel.net)님의 글입니다. 이글은 김명현님의 동의없이 함부로 배포하실 수 없습니다. 안녕하세요? 친소맨입니다. 이번 강좌는 소스가 길어서 내용은 별루 안되는 데, 길이만 길군요.. 앞으로도 계속 이런 사태가 벌어질것 같아서 걱정입니 다. 대신 주석을 너무하다 싶을정도로 붙여놓은 소스이므로 참고 하시면 많 은 도움이 될듯 합니다. * 본 문서는 Java Development Kit 1.0.2 를 기준으로 작성되었습니다. * Java Development Kit 1.1.x 버젼을 사용할 경우 일부 소스가 실행이 되지 않을 수 있습니다. 3.1.3 마음대로 움직이는 탱크를 만들어 봅시다. 지금까지 배운 것을 모두 총괄 복습하는 의미에..
자바 게임 프로그래밍 강좌 5 하이텔 자바 동호회 김명현 (MadOx@hitel.net)님의 글입니다. 이글은 김명현님의 동의없이 함부로 배포하실 수 없습니다. 안녕하세요? 강좌가 좀 늦었습니다. 주말에는 개인적인 일로 무척 바빴습니 다. 그래서 강좌가 늦어진거죠. 이번 강좌는 스프라이트와 키보드 처리에 관련된 내용입니다. 키보드나 마우스 처리는 JDK1.0.x대와 1.1.x대 에서 차 이가 나는 부분이므로, 테스트는 해보지 않았으나, 문제가 발생할 소지가 다분히 있습니다. 될 수 있으면 자료실에 있는 JDK1.0.2 를 사용 하시는 것 이 좋을 것입니다. 만약에 원인모를 이유로 애플릿이 정상 작동 안된다면, 십중 팔구 JDK1.0.x와 JDK1.1.x의 이벤트 처리방식의 차이 때문일 것입니다 * 본 문..
자바 게임 프로그래밍 강좌 4 하이텔 자바 동호회 김명현 (MadOx@hitel.net)님의 글입니다. 이글은 김명현님의 동의없이 함부로 배포하실 수 없습니다. 안녕하세요? 친소맨입니다. 아 벌써 새벽 3시군요.. 괜히 이상한 사이트에 접속했다가, 컴퓨터가 다운되는 바람에 두번씩이나 편집을 하느라, 이 시간 까지 잠도 못자고.. 흑흑.. 이번에는 비트맵 그래픽을 처리하는 방법을 배우게 됩니다. 게임에서 비트 맵 그래픽은 거의 필수라고 할 수 있죠. 이번 절을 보고 나면, 최소한 애플 릿에 그림한장 정도는 띠우실 수 있을 껍니다. :) * 본 문서는 Java Development Kit 1.0.2 를 기준으로 작성되었습니다. * Java Development Kit 1.1.x 버젼을 사용할 경우 일부 소스..
자바 게임 프로그래밍 강좌 3 하이텔 자바 동호회 김명현 (MadOx@hitel.net)님의 글입니다. 이글은 김명현님의 동의없이 함부로 배포하실 수 없습니다. 안녕하세요? 두 개 연속 편집 (2 Hit Combo?)의 과업을 달성한 친소맨 입니 다. 꼴은 모니터를 장장 두시간이나 쳐다보고 있었더니, 눈이 아른 아른 거 리는 군요.. @_@ 이번 강좌로 자바 게임 프로그래밍의 1장이 끝났습니다. 이번 강좌까지 만 들어 내게될 각종 소스파일들을 자료실에 업로드 해놓겠습니다. 잘라서 편 집하기 싫으신 분들은 자료실에서 다운로드 받아서 바로 실행해 보세요. * 본 문서는 Java Development Kit 1.0.2 를 기준으로 작성되었습니다. * Java Development Kit 1.1.x 버젼을 사용..
자바 게임 프로그래밍 강좌 2 하이텔 자바 동호회 김명현 (MadOx@hitel.net)님의 글입니다. 이글은 김명현님의 동의없이 함부로 배포하실 수 없습니다. 1.3 절을 다 올릴려구 했는데, 너무 길어져서 도저히 안되겠군요. 근데, 혹 시 GIF로 그려놓은 설명용 그림을 쉽게 TEXT로 바꿀 수 있는 방법이 없을까 요? 설명용 그림을 대부분 생략하고 넘어가고, 글의 내용을 바꿔 버리기는 하고 있는데, 꼭 필요한 그림들도 있어서 뺄 수 도 없고... 일일히 그리자 니 너무 노가다틱 하군요.. 저에게 이런 고통을 안겨준 애아범 호진 대삽님이 미울 따름이에요 ... T_T * 본 문서는 Java Development Kit 1.0.2 를 기준으로 작성되었습니다. * Java Development Kit 1..
자바 게임 프로그래밍 강좌 1 하이텔 자바 동호회 김명현 (MadOx@hitel.net)님의 글입니다. 이글은 김명현님의 동의없이 함부로 배포하실 수 없습니다. 안녕하십니까? 친소맨 김명현입니다. 이미 만들어 놓은 문서를 새로 편집하 는것도 장난이 아니군요.. 1 회 분량으로 꽤 많은 내용이 될지 모르겠는데, 다음 부터는 이거보다 더 많아질것 같아서 걱정이네요 :) 잘쓴 문서는 아니지만, 초보자나, 자바 게임프로그래밍에 관심이 있으신 분들에게 도움이 되었으면 좋겠군요... * 본 문서는 Java Development Kit 1.0.2 를 기준으로 작성되었습니다. * Java Development Kit 1.1.x 버젼을 사용할 경우 일부 소스가 실행이 되지 않을 수 있습니다. 1. 기본적인 AWT(Abs..
이거 때문에 한 2,3일 고생했다...아..힘들다..==' ObjectInputStream과 ObjectOutputStream의 생성 위치를 바꿔보시기 바랍니다. 서버 쪽에서 ObjectInputStream, ObjectOutputStream 순으로 생성했다면, 클라이언트 쪽에서는 ObjectOutputStream, ObjectInputStream 순으로 생성해야만 합니다. 역도 성립하구요. 이유는 ObjectInputStream 생성자에서 쌍이 되는 ObjectOutputStream이 생성되어 있지 않다면, block되기 때문입니다
import java.util.Locale; import java.util.Date; import java.util.Calendar; import java.util.GregorianCalendar; import java.text.SimpleDateFormat; public class TestDate { public static void main(String args[]) { int iWeekName; int nMoveDay; int nEndDay; long lCurTime; long lCurTimeTemp; long lDiff; Date curDate; Date curDateTemp; String strCurTime; Calendar cal; GregorianCalendar gcal; SimpleDat..
로그인UI랑 조금 수정된 파일
5번째 만든 내 맘대로 만든 채팅소스...ㅋㅋ
클래스패스와 환경 변수, 그것이 알고 싶다. 김세곤 2001년 4월 17일 서론 초보 자바 프로그래머를 괴롭히는 큰 문제 중에 그놈의 클래스패스는 빠지지 않는다. 클래스패스는 사실 이렇게 하나의 글로 설명하기조차 매우 부끄러운 사소한 것인데, 초보 자바 프로그래머에게는 절대 사소하지 않은 것이 현실이다. 더군다나, 가슴 아프게도 대부분의 자바 관련 서적은 클래스패스에 지면을 할애할 만한 형편도 안되고, 대부분의 저자들이 별것도 아닌 것에 공들여 설명하려 하지 않기 때문에, 당연히 클래스패스에 대해서는 많은 독자들이 제대로 이해하지 못한 채 끙끙댄다. 한편으로는, 이것은 기초를 제대로 다지지 않은 독자들의 책임이 크다. 클래스패스를 잘 설정해서 자바 프로그램을 컴파일하고 실행하는 기술은 자바 언어의 첫번째..
import java.awt.*; import javax.swing.*; public class ComponetSize { JFrame jf = null; public ComponetSize(JFrame jf) { this.jf = jf; } public int[] getCenterLocation() { int[] pos = new int[2]; Dimension dimen = Toolkit.getDefaultToolkit().getScreenSize(); Dimension dimen1 = jf.getSize(); pos[0] = (int) (dimen.getWidth() / 2 - dimen1.getWidth()/2); pos[1] = (int) (dimen.getHeight() / 2 -dimen1...
import java.net.*; import java.io.*; import java.util.*; import java.net.*; public class ChatClientByConsole { static int port = 0; static String host = ""; public ChatClientByConsole(String host,int port) { this.port = port; this.host = host; } public static void main(String[] args) { new ChatClientByConsole("127.0.0.1",10001); Socket sock = null;; PrintWriter pw=null; BufferedReader br=null; B..
import java.net.*; import java.io.*; import java.util.*; public class MultiChatServer { public static void main(String[] args) { try { ServerSocket serverSoc = new ServerSocket(10001); System.out.println("접속을 기다립니다."); HashMap hm = new HashMap(); while(true) { Socket sock = serverSoc.accept(); ChatThread chatthread = new ChatThread(sock,hm); chatthread.start(); } } catch (Exception ex) { System...
import javax.swing.*; import java.awt.*; import java.io.*; import java.net.*; import java.awt.event.*; /* 1.Socket 생성자에 서버의IP와 서버의 동작 포트값을(10001)을 인자로 넣어 생성한다. 소켓이 성공적으로 생성되었다면 서버와 접속이 성공적으로 되었다는 것을 의미한다. 2.생선된 socket으로부터 InputStream 과 OutputStream을 구한다. 3.InputStream 은BufferReader 형식으로 변환하고 OutputStream은 PrintWriter 형식으로 변환한다. 4.키보드로 부터 한줄 씩 입력닫는 BufferReader객체를 생성한다. 5.키보드로부터 한줄을 입력받아 PrintWri..
import javax.swing.*; import java.awt.*; public class ChattingClient { public static void main(String[] args) { CreateChattingUI ccu =new CreateChattingUI(); ccu.setSize(500,500); ccu.pack(); ccu.setVisible(true); } } //채팅방UI 만드는 클래스 class CreateChattingUI extends JFrame { JPanel jp,bottom_jp; BorderLayout bl; JTextArea top_jta,member_jta; JTextField username_jtf,msg_jtf; JButton msgSend_jb; pub..
GUI 를 이루는 기본 요소 네 가지는 각각 컴포넌트, 컨테이너, 레이아웃 관리자, 그리고 그래픽스라는 것을 처음에 언급한 바 있다. 우리는 이미 컴포넌트와 컨테이너에 대해 공부하였으며, 이제부터는 레이아웃 관리자 (Layout Manager) 에 대해 공부하도록 하자. 레이아웃(layout)이란 컴포넌트들을 컨테이너 상에 어떻게 배치할 것인지를 결정하는 것을 말한다. 많은 레이아웃 관리자가 있지만, 대표적인 것들로 다음의 다섯 가지를 들 수 있다. BorderLayout - 동, 서, 남, 북, 중앙으로 배치 FlowLayout - 위에서 아래로, 왼쪽에서 오른쪽으로 배치 GridLayout - 동일 크기를 갖는 격자에 배치 GridBagLayout - 다른 크기를 가질 수 있는 격자에 배치 BoxLa..
1.Socket 생성자에 서버의IP와 서버의 동작 포트값을(10001)을 인자로 넣어 생성한다.소켓이 성공적으로 생성되었다면 서버와 접속이 성공적으로 되었다는 것을 의미한다. 2.생선된 socket으로부터 InputStream 과 OutputStream을 구한다. 3.InputStream 은BufferReader 형식으로 변환하고 OutputStream은 PrintWriter 형식으로 변환한다. 4.키보드로 부터 한줄 씩 입력닫는 BufferReader객체를 생성한다. 5.키보드로부터 한줄을 입력받아 PrintWriter에 있는 Printl()메소드를 이용해서 서버에게 전송한다. 6.서버가 다시 봔환하는 문자열을 BufferReader에 있는 readLine()메소드를 이용해서 읽어 들인다. 읽어들인 문..
에코서버 1.1001번 포트에서 동작하는 ServerSocket 을 생성한다. 2.ServerSocket의 accept() 메소드를 실행해서 클라이언트의 접속을 대기한다. 3.클라이언트가 접속할 경우 accpt()메소드는 Socket 객채를 반환한다. 4.반환받은 socket으로부터 InputStream과 OutputStream을 구한다. 5.InputStream은 BufferReader형식으로 변환하고 OutputStream은 PrintWriter 형식으로 변환한다. 6.BufferedReader의 readLine()메소드를 이용해서 클라이언트가 보내는 문자열 한 줄을 읽어 들인다. 7. 6번에서 읽어들인 문자열을 PrintWriter에 있는 println()메소드를 이용해서 다시 클라이언트로 전송한다..
import java.io.*; import java.beans.*; import java.awt.*; import java.awt.datatransfer.*; import java.awt.print.*; import java.awt.event.*; import javax.swing.*; import javax.swing.text.*; import javax.swing.event.*; import javax.swing.undo.*; import javax.swing.border.*; public class Jmemo extends JFrame implements ClipboardOwner,ActionListener,Printable,UndoableEditListener { Container content..
void main() { int i=0; for(i=0;i
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.filechooser.*; public class NotePadExam extends JFrame { JFrame jf,jf2; JPanel jp1,jp2; JMenuBar jmb; JMenu jmFile; JMenuItem jmi_CreateNew,jmi_Open,jmi_Save,jmi_OtherSave,jmi_Exit; JLabel jlb1; JTextArea jta; JDialog jd; public NotePadExam() { super("제목없음"); try { //this.setDefaultCloseOperati..
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class NotePadExam extends JFrame { JFrame jf,jf2; JPanel jp1,jp2; JMenuBar jmb; JMenu jmFile; JMenuItem jmi_CreateNew,jmi_Open,jmi_Save,jmi_OtherSave,jmi_Exit; JLabel jlb1; JTextArea jta; ActionListener al; JDialog jd; public NotePadExam() { //super("메모장"); try { //this.setDefaultCloseOperation(EXIT_ON_CLOSE); //jf = new JF..
잘사용하시면, 간편하게 훌륭한 대화상자들을 만들어 낼수 있습니다. 끝부분에 커스터마이징 부분을 잘 보시길 바랍니다. BEYOND THE BASICS OF JOPTIONPANE The Swing component set in J2SE includes a special class for creating a panel to be placed in a popup window. You can use this panel to display a message to the user and to get a response from the user. The panel presents content in four areas, one each for an icon, message, input, and buttons. You ..
★ Top-level component - JFrame ★ - Java/Servlet/JSP 2006/11/28 23:21 http://blog.naver.com/airdasom/90011367478 JFrame [출처] ★ Top-level component - JFrame ★|작성자 몽상가
addActionListener() 호출시 사용한 new ActionListener() { ... } 부분이 anonymous inner class이고 asd()의 인자인 str을 여기로 고이 전달하려면 str을 final로 선언해야 한다는 얘깁니다. 아래와 같이 final 붙여주면 됩니다. class asd extends Frame { public asd(final String str){ setSize(300,200); setVisible(true); Button bt = new Button("go"); add(bt); bt.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ System.out.print..
//메모장 만들자 import javax.swing.*; import java.awt.*; public class NotePadExam extends JFrame { JFrame jf; JMenuBar jmb; JMenu jm; JMenuItem jmt; JLabel jlb1; JTextArea jta; public NotePadExam() { super("메모장"); try { setLayout(new FlowLayout()); jmb = new JMenuBar(); /*////////////// 파일메뉴추가 /*////////////// jm = new JMenu("파일"); jm=createMenuItem(jm,"새로만들기"); jm=createMenuItem(jm,"열기"); jm=createMe..
awt로 된 완전 초보 계산기입니다.. 웹개발만 하다보니 기초자바가 재미있네영..^^;; import java.awt.*; import java.awt.event.*; public class CalcCreateExam extends Frame { Frame f; Panel pl_0,pl_1; MenuBar mb; Menu m1,m2,m3; MenuItem menu_exit; Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0; Button bs,ce,bc; Button bmc,bmr,bms,bmplus; Button bslush,bsq,bminus,bplus; Button bresult; TextField result_tf; // button_al; int result_number = 0;..
