(Effective Java) 규칙6. 불필요한 객체 생성을 피하라 불필요한 객체.. 기능적으로 동일한 객체는 필요할 때마다 만드는 것보다 재사용하는 편이 낫다. 객체를 재사용하는 프로그램은 더 빠르고 우아함 변경 불가능 (immutable) 객체는 언제나 재사용할 수 있음 절대적으로 피해야 할 극단적 예 String s = new String("Sample string"); 위 문장은 실행될 때마다 String 객체를 만듬 "Sample string"은 그 자체로 String 객체임 바람직한 예 String s = "Sample String"; 위 문장은 실행될 때마다 객체를 만드는 대신, 동일한 String 객체를 사용함 같은 머신(VM)에서 실행되는 모든 코드가 해당 객체를 재사용하게 됨 "Samp..
Windows System Sound Mute/UnMute Windows System Sound를 Mute/UnMute 하는 기능이 필요했다. 어떻게 보면 간단한 기능이라고 생각이 되지만 생각보다 쉽게 찾을 수가 없었다. 더군다나 Java로 구현하려고 보니 JNA를 사용해야 하나 .. 고민을 하다가 아주 적절한 방법을 찾게 되었다. 해결 방법 Java의 ProcessBuilder를 이용하여 Command 명령으로 System Sound를 활성화/비활성화 하는 방법이다. 예제코드 public void test() throws LineUnavailableException, IOException { ProcessBuilder processBuilder = new ProcessBuilder(); //꼭 관리자 ..
(Effective Java) 규칙4. 인스턴스화를 막으려거든 private 생성자를 사용하라 유틸리티 클래스 정적 메서드나 필드만 모은 클래스를 만들고 싶을 때가 있음 (악명이 높지만 분명 필요할 때가 있음) 자바의 기본 자료형 값 (primitive value) 또는 배열에 적용되는 메서드를 한군데 모아둘 때 유용 (예. java.lang.Math, java.util.Arrays) 특정 인터페이스를 구현하는 객체를 만드는 팩터리 메서드 등의 정적 메서드를 모아놓을 때도 유용 (예. java.util.Collections) final 클래스에 적용할 메서드들을 모아놓을 때도 활용 문제 이런 유틸리티(Utility) 클래스는 객체를 만들 목적의 클래스가 아님 그러나 생성자를 생략하면 컴파일러는 자동으로 ..
(Effective Java) 규칙3. private 생성자나 열거 타입으로 싱글턴임을 보증하라 싱글턴 싱글턴은 객체를 하나만 만들 수 있는 클래스 보통 유일할 수밖에 없는 시스템 컴포넌트 (window manager, file system) But, 클래스를 싱글턴으로 만들면 클라이언트를 테스트하기가 어려워짐 싱글턴이 어떠한 인터페이스의 구현체가 아니라면 가짜 구현이 어려움 싱글턴 구현 방법 싱글턴을 구현하는 방법 (JDK 1.5 이전) public final 필드를 이용한 방법 //public final 필드를 이용한 싱글턴 public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { ... } publ..
(Effective Java) 규칙53. null 대신 빈 배열이나 컬렉션을 사용하라 null 반환의 문제.. Collection을 다루는 코드를 쓰다 보면 아래와 같은 경우는 어렵지 않게 만날 수 있다. private final List ballList = ...; public Ball[] getBalls() { if (ballList.size() == 0) return null; .... 문제는 위 코드를 사용하는 클라이언트측에서 발생 할 수 있다. null이 반환될 때의 처리를 추가해줘야 하는데 만약 이를 잊은 경우 오류를 유발한다. 이런 문제는 드러나지 않은 채로 몇년씩이나 잠복해있을 수 있다는 점에서 아주 위험하다. 빈 배열, 컬렉션을 반환하라 문제 해결을 위해서는 빈 배열, 컬렉션을 만들어 반..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/39yZj/btqBDX8P5vn/Y6JcIdz9YIQMNSvtNnOW8k/img.png)
이번 시간에는 JavaFX에서 애니메이션을 사용하는 방법에 대해서 알아보도록 하겠습니다. JavaFX 애니메이션 종류 Transitions 내부 타임라인을 이용한 애니메이션 Fade Transition 주어진 시간 동안 투명도를 변화시키는 Transition 샘플 코드 결과 화면 Path Transition 주어진 시간 동안 하나의 끝 점에서 다른 끝 점으로 이동 샘플 코드 결과 화면 Parallel Transition 주어진 시간 동안 하나의 끝 점에서 다른 끝 점으로 이동 샘플 코드 Sequential Transition 여러 Transition들을 순차적으로 실행 샘플 코드 Timeline Animation 시간의 흐름에 따라 속성을 변경할 수 있도록 함 (속성: 크기, 위치, 색 등) stop, ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/TRdAP/btqzPvdyux7/Mjjqn1prlDgSXhDQDO5ys0/img.png)
들어가며 JavaFX의 Tray Icon에 메뉴를 추가하는 방법에 대해서 알아보도록 하겠습니다. Tray Menu Tray Icon에 추가하는 메뉴는 아래와 같은 형태로 Tray Icon에 오른쪽 마우스 클릭을 했을 때 전시되는 메뉴를 말합니다. * Tray Icon 추가 방법은 이 글을 참고 해주세요. [JavaFx] Tray Icon 전시 방법 이번 시간에는 JavaFX에서 Tray Icon을 전시하는 방법에 대해서 알아보도록 하겠습니다. Tray Icon이란? Tray Icon은 작업 표시줄에 표시되는 아이콘입니다. 아래와 같이 말이죠. JavaFX Application을 개발하면.. jinseongsoft.tistory.com Tray Menu 구현 코드 구성은 아래와 같습니다. TrayMenu...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cn2t67/btqzOXuOkFl/A5FzbdHTMsQ7PGDH7zjt01/img.png)
이번 시간에는 JavaFX에서 Tray Icon을 전시하는 방법에 대해서 알아보도록 하겠습니다. Tray Icon이란? Tray Icon은 작업 표시줄에 표시되는 아이콘입니다. 아래와 같이 말이죠. JavaFX Application을 개발하면서 어플리케이션 실행 상태를 나타내거나 메뉴를 만들 때 쓰이곤 합니다. TrayIcon은 OS환경에 맞는 System Tray(ex. 윈도우에서의 '작업 표시줄')라는 집합에 추가를 하는 방식으로 사용이 됩니다. TrayIcon 객체에는 단순히 아이콘 뿐만 아니라 Tooltip을 달거나 메뉴를 추가할 수도 있습니다. Tray Icon 사용법 먼저 Tray Icon에 사용할 이미지가 필요하겠죠? 각자 이미지를 만들어봅시다... 가장 적절한 크기는 16px X 16px입..
- Total
- Today
- Yesterday
- JavaFX Window Close
- JavaFX
- 자바
- java
- intelij
- TableView
- effective java
- 자전거
- JavaFX Table View
- git
- 일본여행
- 자전거 여행
- Java UI
- effectivejava
- windows
- springboot
- 배낭 여행
- 일본 여행
- 텐트
- 방통대 과제물
- 이펙티브
- 일본 자전거 여행
- 이펙티브자바
- 이펙티브 자바
- 배낭여행
- JavaFX 종료
- 인텔리제이
- JavaFX 테이블뷰
- 스프링부트
- 일본 배낭여행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |