라벨이 자바인 게시물 표시

파일컨트롤 java.io.File

1. 파일 가리키기 File f = new File("neofile.txt"); 2. 디렉토리만들기 File d = new File("momo"); d.mkdir(); 3. 디렉토리내 목록출력하기 if (d.isDirectory()){    String[] dirContents = dir.list();    for(int i=0; i<dirContents.length; i++){   System.out.println(disContents[i]); } } 4. 파일의 절대경로구하기 sysout(dir.getAbsolutePath()); 5. 디렉토리삭제 boolean isDeleted  = f.delete();

패키지를 jar로 만들기 (확장lib포함시)

1. Fat jar 이클립스 플러그인을 다운받아 설치한다 2. 다운받은 jar 를 이클립스 plugin폴더에 복사한다 3. 이클립스 재실행 4. File->export의 other에 새로 추가된 "Fat Jar Exporter" 선택후 next 5. Jar로 패키징할 프로젝 또는 패키지를 선택후 next 6. Jar-name : jar 생성위치선택     Main-Class:에서 메인스레드 선택 7. next 8. 포함할 외부라이브러리 확인 9. finish

패키지를 jar로 만들기

1. 패키지 우클릭 2. export 3. java > Jar file 4. 왼쪽창에서 JAR로 만들 이름과 위치를 선택 5. next 6. next 7. Main class선택(실행시 처음 접근할 클래스) 8. finish(지정한 위치에 생성된다)

역직렬화: 객체복구

FileInputStram fileStream = new FileInputStream("MyGame.ser"); //file지정 ObjectImputStream os  = new ObjectInputStream(fileStream);//get Object Object one = os.readObject(); Object two = os.readObject(); Object three = os.readObject(); GameCharactor elf = (GameCharactor) one; GameCharactor troll = (GameCharactor) two; GameCharactor magician = (GameCharactor) three; os.close();

직렬화

FileOutputStream fs = new FileOutputStream("MyGame.ser");//파일연결법을 알고 있습니다 ObejctOutputStream os = new ObjectOutputStream(fileStream); //stream chain //객체저장법을 압니다 os.writeObject(characterOne); os.wrteObject(characterTwo); os.writeObejct(characterThree); os.close();

JCheckBox

JCheckBox check = new JCheckBox("Goes to 11"); check.addItemListener(this); public void itemStateChanged(ItemEvent ev){    String onoff = "off";   if(check.isSelected()) onoff = "on";   System.out.println("Check boxis "+ onoff); } check.setSelected(true); select.setSelected(false);

JTextArea

JTextArea text = new JTextArea(10,20); JScrollPane scroller  = JScrollPane(text); text.setLineWrap(true); scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); panel.add(scroller); text.setText("Not at all"); text.selectAll(); text.requestFocus();

JTextField

JTextField f = new JTextField(20); JTextField f = new JTextField("Your name"); System.out.println(f.getText()); f.setText("watever"); f.setText(""); f.addActionListener(myActionListener); f.selectAll(); f.requestFocus();

GUI 만들기

1. JFrame frame = new JFrame(); 2. frame.getContentPane().add(button); 다른 대부분의 구성요소와 달리 JFrame에는 다른 위젯을 직접 추가할 수 없다 3. frame.setSize(300,300); frame.setVisible(true); 4. button.addActionListener(this); 5. public void actionPerformed(ActionEvent event){    button.setText("button clicked!!"); }

자바 디자인 기타 패턴

자바에서 사용할 수 있는 디자인패턴 정리 Bridge pattern - 구체구현과 추상부를 모두 바꿔야 할 때 Builder pattern - 복합개체의 생성 및 사용(Iterator Pattern의 사고방식과 동일) Chain of responsibility pattern - 요청의 응답개체를 순차분기시킬때 FlyWeight pattern - 1객체로 다수"가상인스턴스"를 제공(상태만 달리해서)-메모리절약 Interpreter pattern - 특정 언어에 대한 파싱 Mediator pattern - 객체간 복잡한 통신과 제어를 한 곳에 모을때 Memento pattern - 객체복구(ex 작업취소 등) Prototype pattern - 어떤 객체의 인스턴스를 만드는 작업이 자원을 먹거나 복잡할때 Visitor pattern - 객체에 기능추가할때 캡슐화가 필요없을때

자바 디자인 패턴 기본정리

데코레이터 - 객체를 감싸 새로운 행동을 제공 스테이트 - 상태기반의 행동을 캡슐화하여 위임을 통해 필요행동을 선택 스트래티지 - 교환가능한 행동을 캡슐화하고 위임을 통해 필요행동을 선택 이터레이터 - 컬렉션이 어떻게 구현되었는지 드러내진 않으면서도 컬렉션 내에 잇는 모든 객체에 대해 반복 작업을 처리할 수 있게 해 줍니다. 퍼사드 - 일련의 클래스에대해 간단한 인터페이스를 제공 프록시-객체를 감싸서 접근을 제어 팩토리메소드-생성할 구상클래스를 서브클래스에서 결정(ex DB연결팩토리) 어댑터-객체를 감싸서 다른 인터페이스를 제공 옵저버-상태가 변경되면 다른 객체에 연락을 돌릴 수 있도록 템플릿메소드-알고리즘의 개별단계구현을 서브클래스에서 결정(ex 알고리즘의 일부기능이관) 컴포지트-클라이언트에서 객체컬렉션과 개별객체를 똑같이 다루도록(ex nod와 leaf) 싱글턴-딱 한 객체만 생성되도록(ex sync) 추상팩토리-클라이언트에서 구상클래스를 지정하지 않으면서도 일군의 객체생성에 도움 커맨드패턴-요청을 객체로 감쌈 -------------- 참고> GoF의 디자인패턴:Design Pattern 23개의 기본패턴모음집

<객체지향원칙>

- 바뀌는 부분은 캡슐화 한다 - 상속보다는 구성을 활용한다 - 구현이 아닌 인터페이스에 맞춰서 프로그래밍한다 - 상호작용하려면 느슨한 결합을 사용한다 - 클래스는 확장에 대해서는 열려잇지만, 변경에 대해서는 닫혀있어야한다(OCP) - 추상화된 것에 의존하라. 구상클래스에 의존하지 마라. - 친한 애들끼리만 얘기한다 - 먼저 연락하지 마세요. 저희가 연락드리겠습니다. - 클래스 변동사유는 한가지 뿐이어야 한다.

MVCPattern(in compoundPattern) & Model 2

1. http request 2. servlet Controller   a. get javaBean   b. set javaBean   c. model request 3. model response 4. servlet Controller   send javaBean to JSP(=view) 5. http response

MVC에서 쓰이는 패턴

스트래티지 패턴 - 뷰와 컨트롤러 옵저버패턴 - 모델에서 뷰와 컨트롤러로(옵저버=뷰를 등록) 컴포지트 패턴-뷰가 그림을 그리는 동작(node & leaf)

<사랑한다면 결핍을 선물하라.>

부모가 아이를 더 크게 성장시키려면 모든 걸 갖추어주는 배려는 독이 될 수 있다. 어느 정도 결핍을 허용하고, 그 속에서 스스로 판단하고 걸어갈 수 있게끔 해야 한다. 인류사의 모든 문명은 결핍에서 성장하고 풍요에서 쇠퇴해갔다. 개인도 마찬가지다. - 한형조 (한국학 중앙연구원 교수) 그야말로 헝그리 정신이 필요한 시대입니다. 그러나 실제로 헝그리 하지 않은 상황에서 헝그리 정신을 갖는다는 것은 매우 어려운 일입니다. 역으로 생각하면, 그렇기 때문에 오히려 사랑하는 자녀, 사랑하는 후배, 부하직원들에게 어떻게 하면 결핍을 선물할까? 헝그리 정신을 어떻게 심어줄까? 더욱 더 고민해야 하는 때라 할 수 있습니다. by kyh

컴파운드 패턴(Compound Pattern)

패턴의 패턴 패턴의 모임

[본문스크랩] java Swing의 효용가치?

이미지
 지식Q&A > 컴퓨터통신 > 프로그래밍 > 웹프로그래밍 > 자바  질문:  java Swing의 효용가치? bei**** / 2003-08-02 18:19 java Swing이라고 아실겁니다.. 기존의 awt의 사용상의 한계를 뛰어넘은.. 어떤 플래폼에서도 영향을 받지않고 똑같은 모양의 자체컴포넌트를 쓸수있고.. 암튼 발전된 구조의 이벤트, 그래픽 처리등등.. 심도깊게 공부를 하지 않아서 자세히는 모르겠지만.. 암튼 자바의 진보된 Application 및 Applet 개발툴 정도로 알고 있는데요.. 아직까지 Swing으로 작성된 프로그램을 데모프로그램이외에는 본적도 없고.. 물론 재미 삼아 짜는 사람들은 극소수 봤습니다만.. Swing으로 작성한 실제로 사용하는 경우를 못봤고.. 타언어로 작성된 프로그램과 비교에서도 속도면에서 엄청 밀리는 느낌인데요.. 이런 상황에서 Swing을 공부할 필요가 있을까하는 생각이 밀려오네요.. 물론 공부해서 해보단 득이 되겠지만.. 그래도 어느정도의 목표의식을 가지고 공부하기엔 약간은 혼란스러운 상황인데요.. 혹시나 Swing 효용성(?)에 관해 생각있으신 분들 답변좀.. 답변:  www.thinkfree.co.kr solik / 2003-08-03 02:42 스윙은 무겁고 느리다... 네 맞습니다..분명히 C++ 에 비하면 느립니다..어쩔 수 없는건 아시죠? JVM 이 있는한 그건 해결되지 못할 듯 싶습니다. Swing 의 효용가치를 얘기하자면 비교해야할...즉..너무나 상대적인 요소들이 많기 때문에 머라 말하기가 어렵네요..하지만 한가지는 확실하죠..^^ Write Once, Run Anywhere.... 어디서든 실행된다는거.. 그 하나만으로도 충분한 효용가치가 있지 않을까요. 스윙 데모만 보셨다구여..여기 좋은 실제 응용예가 있습니다. 씽크프리오피스 라고 들어보셨나요.. 100% 자바로 구현된(Swing) 어플리케이션 이구여, 우리나라에서 개발되어 이미 세계적으로 꽤 알려진 프로그램입니다.

Proxy Pattern 정리

1. 접근제어 2. 원격프록시 - 원격데이터전달 3. 가상 프록시 - 비용이 큰 객체 접근제어(대용량 이미지객체 등) 4. 보호 프록시 - 권한제어 5. 그 밖 - 캐싱, 동기화, 방화벽, 지연복사 6. 데코레이터와 비슷하지만 용도가 다르다 7. 데코레이터는 객체행동을 추가하지만, 프록시는 접근을 제어한다 8. 자바내장프록시는 동적프록시클래스를 즉석에서 생성한다 9. 다른 래퍼와 마찬가지로 포함 클래스가 증가한다

객체 행동을 통제하는 패턴

데코레이터  패턴 - 다른 객체를 감싸서 새로운 행동을 추가 퍼사드 패턴 - 여러 객체를 감싸서 인터페이스를 단순화(대체 인터페이스제공) 프록시 패턴 - 다른 객체를 감싸서 접근제어 어댑터 패턴 - 다른 객체를 감싸서 다른 인터페이스 제공

프록시패턴 vs 데코레이터패턴

프록시 : 원격or가상개체를 대변하여 통신 및 접근통제 데코레이터 : 객체의 기능을 보강