아래 GIF를 보시면 공감 하실겁니다...프로그래밍하다가 보면 개행한답시고 바로 위 버튼을 누르고 엔터를 눌러버린 경험이 많습니다. 하지만 눌러버리면 위 GIF처럼 엉뚱하게 개행 되어 다시 되돌린 후 맨 마지막 칸에 커서를 두고 다시 엔터를 눌러야하죠.이런 경우에 아주 좋은 단축키가 Shift + Enter 입니다. 위랑 동일한 상태에서 누르면 아래처럼 되죠.실수를 미리 방지 할 수 있고, 뒤에 할 일도 줄여주죠.이런 단축키를 써서 모두들 좀 더 효율있게 프로그래밍 가능하셨으면 좋겠네요.Eclipse, 단축키, 개행
Eclipse에서 코딩을 하다보면 썼던 코드를 지워야하는 경우가 항상 생기죠.저 같은 경우에도 테스트 한다고 함수 내부에 임의의 값을 출력해 함수에 들어가는지 확인한다거나 특정 변수의 값을 디버깅으로 보기 귀찮아서 출력해서 보다 보니 맨 마지막에 보면 코드에 주석 처리된 system.out.println()이 넘쳐나곤 합니다. 그러면 이런 보기 싫은 것들을 지울려고 한 줄을 드래그해서 한번에 지우거나, 백스페이스로 일일히 지우곤 했는데요.아래 처럼요... 이런 줄을 지워주는 단축키가 Eclipse에서 Ctrl + D가 있습니다. 사용하면 아래처럼 깔끔하고 간단하게 한 줄을 지워줍니다. 여러분들도 Ctrl + D를 써보세요.Eclipse, 단축키, 줄 삭제
3 상태 체크박스는 위키에 따르면 일반적인 2개의 상태를 가지는 체크박스에 indeterminate 상태가 추가돼 3개의 상태를 같는 체크 박스를 말합니다.- https://en.wikipedia.org/wiki/Checkbox 이런 3 상태 체크박스는 컴퓨터 사용 중 주로 파일을 선택하는 Tree에서 볼 수 있는데, 파일 선택 트리는 아니지만 비슷한 이미지로 아래와 같은 트리가 있습니다. 자바의 스윙에선 자체적으로 3 상태 체크박스는 지원하지 않아 3상태 체크박스를 직접 만들어 사용하던지 다른 분들이 제공하는 라이브러리를 가져와 사용해야합니다.이미지 출처 - https://stackoverflow.com/questions/31918913/checkbox-indeterminate-state-for-ric..
Swing의 JFrame을 투명하게 만들고 싶으면 2줄만 추가하면 손쉽게 가능합니다.추가할 코드의 예는 아래 코드입니다.setUndecorated(true);setBackground(new Color(0,0,0,122));cs 1번째 줄의 코드는 위 사진에 표시된 제목이나 최소화,최대화,종료 및 옆의 테두리와 같은 장식등을 없애줍니다.2번째 줄의 코드는 장식들이 모두 없어진 frame에 배경색상을 정해 주는 건데 이때 Color를 생성할 때 넘기는 값으로 4번째 값인 Alpha 0(투명)~255(불투명) 사이의 값을 지정해주고 있습니다. 따라서 가운데 값인 122를 입력하면 반투명해집니다. JFrame의 배경색에 Alpha 값을 지정하려면 먼져 1번째 코드를 해줘야 오류없이 돌아갑니다. 위 두 줄을 추가..
Swing에서 제공하는 컴포넌트들은 컴포넌트의 크기인 size와 실제 내용이 표시 되는 크기인 prerferredSize를 가지고 있습니다. 그 중에서도 JLabel과 같은 텍스트를 포함하는 컴포넌트는 아래의 그림과 같은 size와 prerferredSize를 가지고 있습니다. 주목할 점은 preferredSize인데 JLabel의 경우 폰트 크기에 따라 글자 전체 크기가 달라지므로 왼쪽 그림처럼 되죠. 따라서 이를 이용해 폰트를 키워나가면서 prerferredSize를 Size보다 작게 유지되는 때까지 최대한 폰트의 크기를 키우면 Size 크기에 꽉차는 폰트 크기로 자동적으로 만들 수 있습니다. 위 내용을 구현하는 방법은 여러가지일텐데 그 중 하나의 코드로 구현하면 이렇게 됩니다.. public cla..
처음 JFrame을 생성하면 아래의 사진처럼 임의 위치에 뜨거나 정해둔 위치에 표시가 됩니다. 이를 디스플레이의 크기에 따라 가운데 배치하려면 여러가지 방법이 있지만 프로그래머로써 코드는 짧고 간결할 수록 좋다고 생각하기에 가장 좋은 방법은 setLocationRelativeTo(null); 추가하는 것이라고 생각합니다. 이 한 줄만 frame에 추가해주면 아래와 같이 화면 가운데 배치됩니다.setLocationRelativeTo(null);cs java, 자바, GUI, Swing, 중앙, 가운데, 배치
윈도우 프로그램을 보면 윈도우 안에 윈도우가 있는 모습을 볼 수 있다. 그 대표적인 예가 바로 Windows에서 제공하는 계산기이다. 가장 큰 윈도우 틀이 부모 윈도우이고 그 안에 필요에 따라 여러 자식 윈도우가 들어있는 계산기 같은 프로그램이 윈도우 프로그램의 가장 기본적인 형태인 셈이다.(앞서본 컨트롤 윈도우도 그 윈도우의 자식 윈도우로써 생성했었다!!!) 부모와 자식 윈도우를 설정해주는 것은 간단하다. 일단 자식 윈도우도 컨트롤 윈도우처럼 그 윈도우의 프로시져(WndProc)에서 생성하는게 일반적이므로 부모 윈도우의 프로시져에서 스태틱으로 윈도우 핸들을 선언해준다. 그리고 늘 윈도우를 생성할 때 사용한 CreateWindow()함수를 사용해서 생성하되 8번째 인자에 부모 윈도우의 핸들을 넣어주면 된..
컨트롤 윈도우란 API에서 제공되어지는 윈도우들을 의미한다. 컨트롤 윈도우의 종류는 버튼, 에디트, 콤보박스, 리스트박스, 스크롤바, 스태틱 등이 있다. 우선 예제부터 보면 다음과 같다. 123456789101112131415161718192021222324LRESULT CALLBACK WndProc(HWND hWnd, UINT mesg, WPARAM wParam, LPARAM lParam){ static HWND btn; switch (mesg) { case WM_CREATE: btn = CreateWindow( L"button", L"CLICK", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 0, 0, 50, 50, hWnd, (HMENU)0, NULL, NULL); brea..
윈도우 메세지 처리는 윈도우 프로그래밍의 모든 것을 처리하는 것인 셈이다. 메세지 처리는 처리하는 메세지에 따라 여라가지 유형이 존재한다. 우선 가장 기본적인 메세지 처리를 보면 윈도우에서 발생하는 메세지를 처리를 하는 것이다. 일단 알다시피 메세지 처리는 통칭 WndProc함수에서 처리한다. 윈도우에서 발생하는 메세지는 WM_으로 시작하며, 그 종류는 굉장히 많지만 자주 발생하는 것만 모아 보면 123456789WM_SIZE //윈도우의 크기가 변할 때WM_MOVE //윈도우가 이동할 때WM_CREATE //윈도우가 생성될 때WM_DISTROY //윈도우가 파괴될 때WM_MOUSEMOVE //마우스가 움직일 때WM_LBUTTONDOWN //마우스 왼쪽 버튼이 눌렸을 때WM_LBUTTONUP //마우스 ..
- Total
- Today
- Yesterday