개발 공부/자바(Java) 12

[자바] GUI에서 더블버퍼링과 버튼에 삽입한 이미지만 보이는 코드

한 번씩 예전에 했던것들이 기억이 안 나기 때문에 더블버퍼링 코드를 정리해야겠다ㅎㅎ 참고하실분들은 참고하시길 더블버퍼링 private Image img; private Graphics img_g; //2개 필드에 추가 public void paint(Graphics g) { //-아래 과정은 화면에 바로 그리지 않고 메모리 내에서 이루어짐-// img = createImage(WIDTH, HEIGHT); img_g = img.getGraphics(); paintComponents(img_g); img_g.drawLine(x, y1, x + 300, y2); img_g.drawImage(iconImage, 400, 500, null); img_g.drawString("Double Buffer : On ",..

[자바] 윈도우 빌더의 디자인 창에서 이미지 경로 설정하기

윈도우 빌더의 디자인 창에서 버튼이나 라벨에 이미지를 넣고 싶을때 간편하게 경로를 설정하는 방법이 있다. 우선 윈도우빌더에서 JFrame을 상속받는 클래스를 하나 생성해서 패널과 버튼까지 추가해준다. 그리고 1번 icon 특성에 점 3개 있는 부분을 클릭한다. 1번째 줄은 상대경로 설정으로 현재 클래스가 있는 폴더를 시작으로 이미지를 찾아서 경로 설정을 할 수 있다. 2번째 줄은 절대경로 방식으로 본인 PC내에 있는 파일을 넣을 수 있다. 프로그램을 만들면서 경로설정은 웬만하면 상대경로로 해야한다. 우선 이미지를 저장해야한다. 폴더를 만들어서 진행하는 것이 좋다. 이 때 주의할 점이 (2번) 폴더를 선택해서 만들어야 경로에 뜬다. 만약 (1번) 소스 폴더로 만들어서 이미지를 저장해놓으면 Parameter..

[자바] 윈도우빌더에서 패널 클래스로 작업 분리해서 하는 법

GUI로 프로젝트를 만들기 위해서 윈도우 빌더를 사용하는데, 하나의 클래스에 패널, 버튼 등을 다 넣으면서 작업하면 코드가 너무 길어진다. 특히 이번에 리듬게임 강의를 보면서 느낀점이 GUI 부분에서 하나의 클래스에 코드가 너무 많이 들어가 있어서 작업하기가 번거로웠다. 코드가 길어지는 이유를 보니 화면 전환을 할 때 각 컴포넌트를 setVisible(false)로 안 보이는 방식으로 해서인지 코드가 길어진거 같다. 이렇게 하는 것보다 패널에다가 컴포넌트들을 추가하고 화면전환을 할때 패널만 없애주면 나머지 컴포넌트들도 안 보이게 된다. 그래서 각 패널을 클래스로 분리해서 작업하였다. 나는 코드가 하나의 파일에서 너무 길어지는 것을 선호하지 않아서 이렇게 하였다. 윈도우 빌더로 JFrame을 선택해서 클래..

[자바] 윈도우 빌더의 디자인 창에서 처음에 알아야할것들

이번에 자바로 리듬게임 프로젝트를 하면서 윈도우빌더를 사용했는데, 하면서 사소하게 알게된 것들을 정리해야겠다. 내가 나중에 잊으면 다시 참고하기 위해 자세하게 작성한다. 윈도우 빌더의 디자인 창에서 작업하다보면 컴포넌트나 패널들을 계층상 어떤 위치에 두느냐에 따라 보이기도 하고 안 보이기도 한다. 나는 이클립스 한글화를 적용해서 메뉴명이 한글로 표시된다. 프로젝트를 만든 상태에서 '기타' 에 들어간다. WindowBuilder의 Swing Designer에서 JFrame을 선택한다. Application Window를 사용해도 상관은 없다. 패키지 이름과 클래스 이름을 설정해서 만들어준다. Design 탭을 클릭해본다. 1번은 Frame 부분이고 2번은 contentPane으로 Panel이다. 그런데 우..

자바로 리듬게임을 제작해봤다!

내가 자주 봤던 채널 이름 '동빈나' 본명 나동빈 님이 있는데 그 분의 유튜브를 보고 배워서 리듬게임을 제작해봤다. 유튜브 영상에는 점수 기능이 없어서 추가해서 제작했다. 자바로 리듬게임을 간단하게 제작해보고 싶으면 강좌 목록을 참고하시면 됩니다. 나동빈 님의 리듬게임 강좌: https://www.youtube.com/watch?v=xs92kqU2YWg&list=PLRx0vPvlEmdDySO3wDqMYGKMVH4Qa4QhR 리듬게임 완성

JavaFX(Scene Builder) 프로젝트 생성 후 오류 해결방법(jdk 9 이후 모듈 있는 버전)

이클립스에서 jdk 9 버전부터 모듈(module)이 생겼다. 이번에 JavaFX Scene Builder 이용해서 프로젝트를 하려고 하는데, 모듈 때문인지 사소한 오류들이 많이 생겼는데, 모르는거 찾아가면서 해결했다 ㅎㅎ 그냥 jdk 8버전으로 해서 모듈 없이 진행하는 방법도 있지만 최신 방법에서도 문제 없이 이용해보고 싶어서 jdk 9 버전 이후를 사용해서 이클립스를 이용해보았다. 나는 작성일 기준으로 jdk 17 버전을 이용하고 있다. (jre는 15로 설정되어있다.) 아마 JavaFX Scene Builder를 jdk 9 부터 모듈이 추가되는 버전을 사용하는 사람들은 비슷한 에러를 겪었을거 같다. 우선 이 글은 JavaFX Scene Builder와 JavaFX, 이클립스에서 JavaFX 플러그인..

[자바] JFreeChart 로 간트 차트(Gantt Chart)를 사용해보자!

이클립스에서 JFreeChart 라이브러리를 이용해서 여러 가지 차트를 사용할 수 있습니다. 저는 학교에서 CPU 스케줄링 과제 때문에 사용해본 적이 있는데요. JFreeChart는 외부 라이브러리이기 때문에 다운로드를 하여줘야 합니다. 1. JFreeChart 라이브러리 설치 다음 사이트에 들어갑니다. http://www.jfree.org/jfreechart/ JFreeChart JFreeChart is a free 100% Java chart library that makes it easy for developers to display professional quality charts in their applications. JFreeChart's extensive feature set include..

[자바] JTextField에 범위 지정된 정수값만 받는 방법

자바(Java)에서 GUI로 프로그램을 만들려고 할 때 텍스트필드(JTextField)를 자주 사용합니다. 보통 자주 사용하는 형태가 JTextField 바로 옆에 버튼(JButton)을 배치해서 JTextField에 값을 입력하고 JButton을 클릭하면 입력된 값으로 결과가 나타내는 방식이 많습니다. 이 때 JTextField 에 입력되는 값을 제한하고 싶은 경우가 있는데, 여러 가지의 방법이 있습니다. 그 중에서 제가 알게된 방법을 보여드리겠습니다. JFormattedTextField를 사용하면 됩니다. 먼저 위에서 말한 형태로 배치하기 위해 GUI를 만들어보겠습니다. Window Builder를 사용하겠습니다. Window Builder 사용방법이 궁금하시면 먼저 이것을 참고하시면 되겠습니다. [..

[자바] 문자열로 된 연산식을 계산하는 방법

자바(Java)로 프로그래밍을 하다 보면 문자열과 관련된 문제를 많이 접합니다. 네이버 지식인에 올라오는 프로그래밍 관련 문제들에서 자주 보는데, 문자열을 정수로 바꾸거나 정수를 문자열로 바꾸는 등의 문제를 많이 본거 같습니다. 여러 가지 문제들 중에서 위에 사진처럼 문자열로 된 연산식을 계산해야 하는 문제가 있습니다. 자바에는 잘만 찾아보면 유용한 해결 방법들이 많이 있습니다. 자바에서 자바스크립트의 함수를 호출하는 것입니다. 이건 자바 jdk6 버전부터 사용이 가능했기에 상당히 오래전부터 사용이 가능했다는 것을 알 수 있습니다. 자바스크립트의 eval 함수를 이용하는 것인데요. eval 함수를 사용하기 위해 먼저 ScriptEngineManager와 ScriptEngine 클래스를 포함시켜줍니다. e..

[자바] 이클립스에서 Window Builder(윈도우 빌더) Design 탭이 사라졌을 때 다시 나타나게 하는 방법

Window Builder(윈도우 빌더)를 사용해서 프로그램을 만들다 보면 아래의 사진처럼 Source 와 Design 탭이 있어야 하는데, 가끔 사라진 경우가 있습니다. (ㅡㅡ?) 간단하게 다시 나타나게 하는 방법이 있습니다. 소스코드 파일 위에 마우스 오른쪽을 클릭해서 위 사진에 나와있는 것을 클릭해줍니다. 그러면 다시 Source와 Design 탭이 나타나 있는 것을 확인할 수 있습니다. ㅎㅎ 저의 이클립스 테마와 글자색이 궁금하시면 아래의 게시물을 참고하시면 됩니다 :) [자바] 이클립스(eclipse)에서 글자색, 테마(배경화면) 어둡게(dark) 바꾸기 [자바] 이클립스(eclipse)에서 글자색, 테마(배경화면) 어둡게(dark) 바꾸기 자바로 개발을 시작하면 이클립스를 사용하는 경우가 많습..