목록IT (1655)
오늘도 공부
ch03애플리케이션과 액티비티 만들기 *이번 장에서는 애플리케이션의 수명 주기와 안드로이드 런타임이 이 수명 주기를 관리하는 방식에 대해 좀더 배운다 - 안드로이드 애플리케이션 구성요소 *액티비티 : 뷰를 사용해 정보를 보여주고 사용자 액션에 반응하는 그래픽 사용자 인터페이스를 형성한다. *서비스 : 화면에 보이지 않은 채 실행되어,데이터 소스와 화면에 보이는 액티비티들을 업데이트하고 알림을 생성한다. *콘텐츠 공급자 : 애플리케이션 데이터베이스를 관리하고 공유하는 데 사용된다. *인텐트 : 간단한 메시지 전달 프레임워크다.메시지를 방송하고 의도를 전달할 수 있다. *브로드캐스트 수신자 : 수신되는 인텐트에 반응해 자동으로 여러분의 애플리케이션을 시작시킬 것이다. *알림 : 사용자의 현재 액티비티가 가진..
참으로 싼티난다..그래도 처음 플젝이니깐..ㅋ 기능구현 1.확인 클릭시 DB에서 ID조회 2.저장 클릭시 DB에 저장함. 학습목표 1.안드로이드 기본 UI구현 2.안드로이드 기본 DB접속 이해 3.안드로이드 개발 과정 아주 조금이해..==; LoginExamAct.java package com.test; import android.app.Activity; import android.app.AlertDialog; import android.content.ContentValues; import android.content.Context; import android.content.DialogInterface; import android.database.Cursor; import android.database...
객체 직렬화(Object Serialization): 송 재승(angel1011@hanmail.net) 자바에서는 자바에서 제공하는 기본적인 데이터 유형 이외에도 여러 객체들을 스트림에 쓰고, 읽을 수 있는 기능을 제공하는데 이것이 바로 객체 직렬화를 통해서 가능하다. 이러한 객체 직렬화 기법은 원격 메소드 호출, 보안 및 암호화 등 실제 프로그래밍 시에 유용하게 사용되어 질 수 있다. 객체 직렬화의 비밀그러면 먼저 객체 직렬화가 어떠한 과정을 거쳐서 이루어 지는지 비밀을 벗겨보도록 하자. 먼저 객체들은 ObjectOutputStream에 의해서 직렬화가 되며, ObjectInputStream에 의해서 직렬화가 해제된다는 사실을 기억하도록 하자. 이러한 일련의 과정을 그림으로 나타내면 다음과 같다. [그..
제8장 AWT 1. AWT(ABSTRACT WINDOW TOOLKIT) 컴포넌트(COMPONENT) 가. AWT 컴포넌트 모델 나. Component 클래스 다. 레이블(Label) 컴포넌트 라. 버튼(Button) 컴포넌트 마. 체크박스(Checkbox) 컴포넌트 바. 선택(Choice) 컴포넌트 사. 리스트(List) 컴포넌트 아. 스크롤바(Scrollbar) 컴포넌트 자. 캔버스(Canvas) 컴포넌트 2. 컨테이너(CONTAINER) 컴포넌트 가. Container 클래스와 Inset 클래스 나. 패널(Panel) 컴포넌트 다. 윈도우(Window) 컴포넌트 라. 프레임(Frame) 컴포넌트 마. 대화상자(Dialog) 컴포넌트 바. 파일 대화상자(FileDialog) 컴포넌트 3. 텍스트 컴포넌..
자바 게임 프로그래밍 강좌 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 ..
