본문 바로가기

JavaFX6

앱 리커버리 모드 설계 개발 퍼블리싱 다 혼자하느라 죽을뻔... 주말 출근을 몇 번 연속 한거냐 설계대로 작동하는걸 보면 꽤 뿌듯함. 개발하면서 배운 것도 많고. Javafx에 대한 이해도 높아짐. 2020. 8. 27.
Timeout을 걸고, 시간이 지난 뒤에 작업이 필요할 때 : PauseTransition 예를 들어, 새로운 stage를 열고 특정 시간이 지난 뒤에도 떠있다면 닫고 싶을 때라던지, 특정 시간이 지난 후에 작업이 필요할 때 쓰기 위한 객체 PauseTransition 객체 이름만 보면 뭔가 작업 중지에 대한게 필요할 때를 위한 것임을 알 수 있다. 아래와같이 사용한다. private val delay = PauseTransition(Duration.millis(6 * 1000.0)) 6초로 세팅 init { delay.setOnFinished { println("6초 지나쪙") hideLoading() } } 6초가 지나면 로딩화면이 사라지는 함수를 호출한다. fun showLoading(stage: Stage? = null) { if(loading != null){ hideLoading().. 2020. 7. 17.
상위제어기 성능 개선 기록 기록이라고 해봐야 내부문서라 코드나 영상을 올릴 순 없지만... 그냥 이러이러해서 몇 초 줄였다는 기록을 위해 가능한 부분만. 상위제어기의 성능 개선을 위한 화면 Update history 20.03.01 | Preload 성능개선 적용 후 테스트 결과 요약 20.07.06 | Jog화면의 구조 개선 적용 후 테스트 결과 요약 20.03.01 | Preload 성능개선 적용 후 테스트 결과 요약 초기화가 끝난 이후 첫번째 하단 메뉴 진입 시의 속도 차이 측정(초) 단위 : 초 WCM TB TW Status Jog Setting 적용 전 3.30 3.02 0.5 2.67 4.75 1.77 적용 후 2.75 0.90 0.5 1.67 1.54 1.20 단축 시간 0.55 2.12 0 1.00 3.21 0.57.. 2020. 7. 6.
javafx node translate(노드의 drag 창 이동) 작업하다보니 javafx의 drag 이벤트 대응 수준이 안드로이드 2.x급인지라... 실무에서 사용하려면 여러가지 고려해야될 것들이 많아 못쓸 것 같지만, 기록으로 남긴다. 아래 예제는 stage안에 popup으로 띄우는 작은 툴팁에 적용한 것이다. root에 setOnMousePressed 이벤트에 클릭한 현재 좌표(screen.x, screen.y)를 저장하고 setOnMouseDragged 이벤트에 translateX로 마우스의 이동 좌표값을 따라간다. 마지막에 오프셋을 갱신하는 이유는, translate가 현재 위치에서의 +- 값으로 이동 좌표가 결정되기 때문에 갱신하지 않으면 it.scrrenX - offsetX의 값이 x^n 이 되어 값이 너무 커져 순간이동이 발생하기 때문이다. 다만, 적용해.. 2020. 6. 24.
창 최소화 상태 확인(iconified) Stage에 창이 최소화 되었는지 확인하는 변수가 존재한다. 아래와 같다. primaryStage.iconifiedProperty().addListener { observable, oldValue, newValue -> btnMinus.apply{ if(isPressed){ onMouseReleased onMouseExited } } } addListhener에 기본적으로 3개의 변수가 있고, 해당 변수를 컨트롤 하면서 사용하면 된다. 2019. 11. 4.
새로운 stage 띄울 때 기존 stage 구하기(듀얼모니터) JavaFX의 stage의 위치는 모니터 갯수에 상관없이 좌표로 구분된다. x,y,width,height 4개의 프로퍼티로 창을 띄우는 위치가 결정된다. 듀얼모니터의 경우 1번 모니터는 minX - 0 maxX - 1080 처럼 구분되며, 2번모니터는 min이 1080 max는 모니터 가로 크기 더한값. 그래서 새로운 stage를 띄울 때 기존 stage값을 기반으로 하지 않으면 무조건 primary 모니터에 뿌려주기 때문에 해당 이슈를 해결하기 위해서는 두 가지 방법이 존재한다. 1. 기존 stage의 프로퍼티를 구해서 새로운 stage에 지정한 뒤 띄운다. 2. 모니터의 갯수를 파악하고 x,y값만 구해서 현재 stage가 있는 모니터에 띄운다. 구현하고자 하는 기능에 따라 솔루션은 나뉘겠지만 내 경우.. 2019. 6. 11.