파란하늘의 지식창고
[JAVA][tip] Swing JFrame의 ActionListener와 KeyListener의 처리와 통합
Study/Java 2009. 10. 1. 21:11

가령 알럿창을 띄우거나 글을 입력 후 확인 버튼을 누를 필요 없이 엔터를 치면 실행되도록 하고 싶은 경우가 있다. 이럴 때 일반적인 확인 버튼 동작의 구현은 ActionListener를 통해 버튼에 액션이 일어나면 실행 KeyListener를 통해 해당 입력 필드에서 엔터 액션이 일어나면 실행이와 같이 2개의 구현을 하게 된다. 이에 대한 예제는 아래와 같다. public class BaseJFrame extends JFrame implements BaseJFrameInterface, ActionListener, KeyListener { //프레임을 생성할 내용들이 구현되고 //... ///아래와 같이 어떤 입력 필드에 대한 설정을 한다고 가정한다. private JPanel setLoginTextFie..

[Java][tip] springframework + swing에서 setSize를 applicationContext에서 선언하기
Study/Java 2009. 9. 30. 19:37

setSize를 하는 방법 아래와 같은 방법이 있다. setSize(Dimension d) //또는 setSIze(int width, int height) 위 set메소드를 이용하여 applicationContext에서 선언을 하여 호출하면 아래와 같은 에러가 발생한다. Bean property 'size' is not writable or has an invalid setter method. setter getter를 이용하기 위해서는 size라는 변수가 있어야 하지만 JFrame에서는 단순히 크기를 세팅해주기 위한 helper 메소드 이기 때문에 이를 이용한 프로퍼티 설정은 불가능하다. 하지만 사이즈를 선언하기 위한 또다른 방법으로 setPreferredSize라는 메소드가 있다. 이는 preferr..

[JavaScript][tip] protypejs 와 jQuery의 확장
Study/JavaScript 2009. 9. 8. 22:31

두 라이브러리는 객체에 대한 확장을 지원한다. a라는 이름의 객체가 있다고 하면 (new를 사용하건 JSON이건간에) 다음과 같이 a객체를 확장한다. prototypejs의 경우 prototype이란 이름에 걸맞게 Object에 extend를 구현하여 apply 함수를 통해 확장을 지원한다. Object.extend(a, 확장객체); jQuery의 경우 $ 셀렉터에 선언된 extend 함수를 통해 확장을 지원한다. $.extend(a, 확장객체); 확장 객체는 원하는 대로 사용하면 된다. //일반 객체의 경우 function B() { this.bValue = "값"; this.bMethod = function() { return "메소드결과"; }; } //위 생성자 함수에 대한 생성객체인 new B(..

[JAVA][tip] 자바 관련 유용한 즐겨찾기 모음
Study/Java 2009. 7. 9. 01:43

컨벤션 문서 모음 코드 컨벤션 : http://java.sun.com/docs/codeconv/ JST 코드 컨벤션 : http://java.sun.com/developer/technicalArticles/javaserverpages/code_convention/ 한글 문서 : http://okjsp.pe.kr/doc/jspCodeConvention.html 프로젝트 컨벤션 : http://java.sun.com/blueprints/code/projectconventions.html 네이밍 컨벤션 : http://java.sun.com/blueprints/code/namingconventions.html JDK 6 한글 문서 : http://xrath.com/javase/ko/6/docs/ko/ JAVA..

[MSSQL][tip] datetime과 smalldatetime과 unixtime의 변환
Study/MSSQL 2009. 5. 20. 20:16

db에 시간에 대해 저장할 때 datetime과 unixtime 두 가지 방식 중 하나를 이용하여 저장한다. 다음과 같은 query가 datetime 컬럼에 대해 실행되면 어떻게 될까? INSERT 테이블 (날짜컬럼) values(0) 위의 경우 datetime 형식 컬럼에는 '1900-01-01 00:00:00.000'이 저장된다. 만약 int값을 0이 아닌 값으로 실행하면 어떻게 될까? INSERT 테이블 (날짜컬럼) values(1) 위의 경우 datatime 형식 컬럼에는 '1900-01-02 00:00:00.000'이 저장된다. 즉 숫자형의 값을 datetime 컬럼에 입력하면 '1900-01-01 00:00:00.000'을 기준으로 day가 증가 또는 감소한 값이 저장된다. unixtime은 ..

[JavaScript][tip]웹사이트 최적화 기법 중 몇가지 소개
Study/JavaScript 2009. 5. 18. 20:32

ITC 출판사의 웹사이트 최적화 기법 - UI 개발자를 위한 필수 지침서 위 책을 보면서 몇가지 괜찮은 것들을 알게 되었네요. (이미 알고 있거나 애매한 부분들에 대한 정리가 되어 좋았습니다.) 그 중 몇가지를 아래 소개합니다. 좀더 자세한 내용은 책을 참고하면 좋을 듯 하네요. 1. StyleSheet는 헤더에 넣어라. display가 되기 전에 해당 스타일이 지정이 되어야 한다. 만약 display가 된 이후 스타일이 지정이 되면 화면이 재 로딩이 되어야 하기 때문에 그만큼 리소스가 낭비된다. 2. JavaScript는 아래에 넣어라. function안에 존재 하지 않는 JavaScript 함수와 변수는 페이지가 로딩되면서 바로 호출이 된다. 따라서 페이지가 로딩되면서 호출되는 JavaScript가 ..

[MSSQL][tip] varchar 타입 컬럼 검색 SP 작성 시 주의사항
Study/MSSQL 2009. 5. 8. 15:10

어떤 테이블의 varchar 타입 컬럼을 검색하는 SP를 작성할 경우 아래와 같이 작성하곤 한다. CREATE PROCEDURE [dbo].[searchA] @searchColumnA NVARCHAR(12) AS SET NOCOUNT ON SELECT * FROM A WITH (READUNCOMMITTED) WHERE columnA = @searchColumnA 이 쿼리를 직접 테스트 할 때 이상없더라도 SP로 호출하면 급격히 느려질 수 있다. 이유는 varchar로 된 고정 길이의 columnA을 검색하기 위해 입력한 @searchColumnA에 대해 매번 테이블을 조회하는 경우 CONVERT 과정이 더해지기 때문이다. 이는 데이터 형식의 선행 규칙에 의해 이루어지며 자세한 내용은 아래 링크를 통해 알..

[JAVA][ibatis][tip] ibatis 공식 사이트 문서
Study/Java 2009. 5. 7. 10:24

공식 사이트 http://ibatis.apache.org/ SqlMaps 한글 문서 http://svn.apache.org/repos/asf/ibatis/trunk/java/ibatis-2/ibatis-2-docs/ko/ JavaDoc http://ibatis.apache.org/docs/java/user/ 찾기 편하라고 적어봅니다.