본문 바로가기

JavaFX

(43)
[JavaFX] JavaFX ComboBox 데이터 추가 변경 이벤트 JavaFX ComboBox 데이터 추가 및 이벤트 핸들러 JavaFX에서 ComboBox에 데이터를 추가하고 ComboBox 셀렉트 변경 시 이벤트 발생 처리 방법을 알아보자. ComboBox를 컨트롤러에서 객체를 생성하는 방법과 scene builder를 사용하여 fxml로 UI를 그리고 컨트롤러에서 조작하는 방법이 있는데 나는 후자로 하려고 한다. 최대한 화면과 컨트롤러를 분리시키기 위해서이다. 이벤트 발생을 onAction이벤트를 사용하는 방법과 comboBox에 addListener를 추가하는 방법 두가지 방법이 있다. ComboBox UI 생성 우선 fxml에서 ComboBox를 추가하고 fx:id 와 onAction 이벤트를 추가한다. ComboBox 데이터 생성 ComboBox에 데이터를 ..
[JavaFX] JavaFX TableView Mouse Double Click Event 마우스 더블클릭 이벤트 JavaFX TableView Mouse Double Click Event JavaFX에서 TableView에 사용자 Data를 조회해서 넣고 테이블 row를 더블클릭할 때 이벤트를 발생시키고 싶었다. 하지만 JavaFX에서 OnMouseClicked 이벤트는 있는데 더블클릭 이벤트가 보이지 않는다. 그래서 어쩔 수 없이 마우스 클릭 이벤트 발생 시 event에 getClickedCount() 이벤트가 1보다 클면 더블클릭으로 간주하고 이벤트를 처리했다. tableView.getSelectionModel().getSelectedItem().getUserId(); 테이블에서 선택한 셀의 모델의 가져와서 사용자 아이디 정보를 뽑아낼 수 있다. @FXML private TableView tableView; @..
[JavaFX] JavaFX hibernate error : xxx is not mapped JavaFX에서 hiberante로 select할 때 에러 발생 Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxeXCEPTION: TESTVO is not mapped [ SELECT COUNT(*) FROM TESTVO] SessionFactory factory = HibernateUtil.getSessionFactory(); Session session = factory.getCurrentSession(); Transaction transaction = null; transaction = session.beginTransac..
[JavaFX] JavaFX 공통 페이징 처리 목록 만들기 JavaFX 공통 페이징 처리 목록 만들기 JavaFX에서 게시글 페이징 처리하기 위해 JavaFX의 Pagination을 사용해봤다. fxml로 view화면을 만들고 게시글 목록을 페이징할 수 있도록 AnchorPane을 생성했다. view화면을 컨트롤하기 위해 컨트롤러를 하나 생성한다. Paging은 클래스로 빼서 공통으로 사용할 수 있도록 따로 Paging 클래스를 만들었다. initialize에서 Paging객체를 생성하고 call 이벤트 함수를 정의한다. 페이징 클릭 이벤트 발생 시 call이 호출되고 cratePage 메소드에서 데이터를 조회하여 VBox로 데이터를 출력하게 된다. package application; import java.net.URL; import java.util.Reso..
[JavaFX] JavaFX scene builder fxml 연동 메뉴바 생성 fxml에서 MenuBar만 생성하고 controller에서 MenuBar에 Menu를 추가하는 화면을 만들어보려 한다. menu클릭 시 화면을 탭 형식으로 로드하는 형식으로 화면을 만들 생각이다. fxml에서 AnchorPane안에 MenuBar을 생성 후 fx:id에 menuBar를 추가한다. menuItem들은 controller에서 추가할 것이다. fxml에서 생성한 fx:id의 menuBar를 controller에서 변수 선언한다. Menu를 초기화 하고 메뉴에 들어갈 MenuItem들을 만들고 setOnAction 이벤트를 추가한다. menuItem을 Menu에 담고 Menu을 fxml에서 만든 menuBar에 담는다. mItem 이벤트의 createTab메소드는 메뉴를 클릭 시 탭 형식으로 ..
[JavaFX] JavaFX 모든 윈도우 창 닫기 JavaFX에서 메인화면을 만들고 메뉴의 화면들을 메인화면에 탭형식으로 보여주도록 개발을 했다. 이 때 메인화면을 종료하면 탭으로 분리되어 있던 다른 화면들도 같이 종료가 되야하기 때문에 메인화면을 종료하면 모든 화면들도 종료되도록 하려고 한다. 우선 로그인화면 생성 시 윈도우창에 닫기, 확대, 축소가 없는 UI를 만든다. fxml로 만든 login.fxml을 로드한다. login.fxml을 별다른건 없고 기본 로그인 UI의 형식으로 만들었다. 여기서 중요한건 primaryStage.initStyle() 메소드이다. initStyle에 들어가는 값은 5가지가 있다. DECORATED : 일반적인 윈도우 화면의 흰색배경 스타일로 타이틀, 축소, 확대, 닫기 버튼을 출력한다.(기본 default 값) TRA..
[JavaFX] JavaFX CSS 사용해서 UI 꾸미기 JavaFX에서 웹에서 처럼 css 스타일 시트를 사용해서 화면 UI를 꾸밀 수 있다. 이전 Java 버전에서는 아마 안되는걸로 알고 있는 JavaFX에서는 css 사용을 해서 UI를 꾸미기가 가능하다고 한다. 그래서 이번에 CSS 사용법과 CSS종류가 어떤 것들이 있는지 알아보고 정리하려고 한다. 기본적으로 JavaFX 프로젝트를 하나 생성하게 되면 application.css 라는 파일이 기본 생성된다. 사용법은 web에서 css사용을 해본사람이라면, html을 어느정도 아는 사람이라면 사용하기 크게 어렵지 않을 것 같다. 왜냐하면 명령어가 거의 유사하다. 예를들어 백그라운드나 이미지를 디자인의 경우 아래와 같이 유사하다. web css : background-img: url('경로'); JavaFX..
[JavaFX] JavaFX TableView Data 추가 TableView 컬럼 합치기 JavaFX TableView를 Scene Builder를 이용하여 data를 추가하고 만들고 사용법에 대해 간단히 소개하려고 한다. JavaFX에서 fxml로 UI를 만들고 로드해서 TableView에 데이터를 생성하는 방법이 Web에서 테이블을 만들고 tr, td생성 후 데이터를 넣는 방식과는 조금 다르다. 그래서 이번 글에서는 TableView 생성 후 데이터를 가공해서 TableView에 넣는 방법, 그리고 테이블의 컬럼을 colspan, rowspan하는 방법에 대해 알아보려고 한다. 1. TableView column merge 2. TableView 생성 후 데이터 넣기 TableView 컬럼 합치기 fxml과 controller 를 먼저 만들어 준다. fxml에서 TableView만 만들고..