David Grieve is your best resource, but he's on vacation. On Jul 23, 2013, at 9:00 AM, Peter Penzov <[email protected]> wrote:
> Well, the only solution that I can think of is to place the images and the > css file into one folder. > > > On Tue, Jul 23, 2013 at 3:51 PM, Pavel Safrata > <[email protected]>wrote: > >> Forwarding to the list.. >> Pavel >> >> >> -------- Original Message -------- >> Subject: Re: java.lang.NullPointerException at >> com.sun.javafx.sg.prism.**NGRegion.renderContent(**NGRegion.java:1129) >> Date: Tue, 23 Jul 2013 15:48:20 +0300 >> From: Peter Penzov <[email protected]> >> To: Pavel Safrata <[email protected]> >> >> >> >> With the help of Pavel Safrata I found the problem. I have this css file >> which sets the style and the images of the toggle buttons: >> >> #pill-left { >> -fx-padding: 5; >> -fx-border-image-source: url("/com/dx57dc/images/left-**btn.png"); >> -fx-border-image-slice: 4 4 4 4 fill; >> -fx-border-image-width: 4 4 4 4; >> -fx-border-image-insets: 0; >> -fx-border-image-repeat: stretch; >> -fx-background-color: null !important; >> } >> #pill-left:selected { -fx-border-image-source: >> url("/com/dx57dc/images/left-**btn-selected.png"); } >> #pill-left .label { >> -fx-text-fill: #d3d3d3; >> -fx-effect: dropshadow( one-pass-box , rgba(0,0,0,0.75) , 0, 0.0 , 0 , >> -1 ); >> } >> >> #pill-left:selected .label { >> /* -fx-text-fill: black; */ >> -fx-text-fill: white; >> -fx-effect: dropshadow( one-pass-box , white , 0, 0.0 , 0 , 1 ); >> } >> #pill-center { >> -fx-padding: 5; >> -fx-border-image-source: url("/com/dx57dc/images/**center-btn.png"); >> -fx-border-image-slice: 4 4 4 4 fill; >> -fx-border-image-width: 4 4 4 4; >> -fx-border-image-insets: 0; >> -fx-border-image-repeat: stretch; >> -fx-background-color: null !important; >> } >> #pill-center:selected { -fx-border-image-source: url("/com/dx57dc/images/* >> *center-btn-selected.png"); } >> #pill-center .label { >> -fx-text-fill: #d3d3d3; >> -fx-effect: dropshadow( one-pass-box , rgba(0,0,0,0.75) , 0, 0.0 , 0 , >> -1 ); >> } >> #pill-center:selected .label { >> -fx-text-fill: black; >> -fx-effect: dropshadow( one-pass-box , white , 0, 0.0 , 0 , 1 ); >> } >> #pill-right { >> -fx-padding: 5; >> -fx-border-image-source: url("/com/dx57dc/images/right-**btn.png"); >> -fx-border-image-slice: 4 4 4 4 fill; >> -fx-border-image-width: 4 4 4 4; >> -fx-border-image-insets: 0; >> -fx-border-image-repeat: stretch; >> -fx-background-color: null !important; >> } >> #pill-right:selected { -fx-border-image-source: >> url("/com/dx57dc/images/right-**btn-selected.png"); } >> #pill-right .label { >> -fx-text-fill: #d3d3d3; >> -fx-effect: dropshadow( one-pass-box , rgba(0,0,0,0.75) , 0, 0.0 , 0 , >> -1 ); >> } >> #pill-right:selected .label { >> -fx-text-fill: black; >> -fx-effect: dropshadow( one-pass-box , white , 0, 0.0 , 0 , 1 ); >> } >> >> The images are placed at the Java package: com.dx57dc.images >> What is the proper way to load images from css in Java 8? >> >> >> On Tue, Jul 23, 2013 at 1:51 PM, Pavel Safrata >> <[email protected]<mailto: >> pavel.safrata@oracle.**com <[email protected]>>> wrote: >> >> Hi Peter, >> it's enough to report on one place, let's discuss the issue in the >> bug. I'll put there a comment soon. >> Pavel >> >> >> On 23.7.2013 12:37, Peter Penzov wrote: >> >> Hi, >> I'm working on JavaFX example which uses Toggle button: >> >> private void initMainStage(final Stage mainStage) >> { >> // Set Main Window Label >> >> // Set Icon of the main stage >> Image img = new >> Image(getClass().getResource("**/com/dx57dc/images/internet-** >> icon.png").toExternalForm()); >> >> mainStage.getIcons().add(img); >> >> // Main Stage >> root = new BorderPane(); >> final VBox vbox = new VBox(); >> // Set Style >> String pillButtonCss = >> DX57DC.class.getResource("/**com/dx57dc/css/PillButton.css"** >> ).toExternalForm(); >> >> >> // Create 3 toggle buttons and a toogle group for them >> ToggleButton tb1 = new ToggleButton("Infrastructure")**; >> tb1.setId("pill-left"); >> ToggleButton tb2 = new ToggleButton("Agents"); >> tb2.setId("pill-center"); >> ToggleButton tb3 = new ToggleButton("Live Performance"); >> tb3.setId("pill-right"); >> >> final ToggleGroup group = new ToggleGroup(); >> tb1.setToggleGroup(group); >> tb2.setToggleGroup(group); >> tb3.setToggleGroup(group); >> // Select the first button by default >> group.selectToggle(tb1); >> >> // Some test data >> final Rectangle rect2 = new Rectangle(300, 300); >> rect2.setFill(Color.SILVER); >> final Rectangle rect3 = new Rectangle(300, 300); >> rect3.setFill(Color.**DODGERBLUE); >> >> tb1.setUserData(root); >> tb2.setUserData(rect2); >> tb3.setUserData(rect3); >> final HBox hBox = new HBox(); >> >> // Listener which changes toggle buttons content >> group.selectedToggleProperty()**.addListener(new >> ChangeListener<Toggle>() >> { >> @Override >> public void changed(ObservableValue<? extends >> Toggle> ov, >> Toggle toggle, Toggle new_toggle) >> { >> if (new_toggle == null) >> { >> } >> else >> { >> vbox.getChildren().set(2, (Node) >> group.getSelectedToggle().**getUserData()); >> } >> } >> }); >> >> hBox.getChildren().addAll(tb1, tb2, tb3); >> hBox.setPadding(new Insets(5, 5, 5, 5)); // Padding >> between the >> main menu and the content >> hBox.getStylesheets().add(**pillButtonCss); // Add the >> css style >> >> // Content of the main stage >> leftHBox = getLeftHBox(mainStage, root); >> rightHBox = getRightHBox(mainStage); >> footerVBox = getFooter(mainStage); >> centerPane = getCenterPane(mainStage); >> >> // default resizer with drag insets(5,5,5,5); >> //RegionResizerFX.register(**leftHBox, rightHBox, >> footerVBox, >> centerPane); >> >> root.setRight(rightHBox); >> root.setBottom(footerVBox); >> root.setLeft(leftHBox); >> root.setCenter(centerPane); >> >> RegionResizerFX.register(**centerPane); >> >> // Vbox which holds main menu, toggle buttons and main >> content >> vbox.getChildren().addAll(**getMenu(mainStage, root), >> hBox, (Node) >> group.getSelectedToggle().**getUserData()); >> >> // Set main stage size and color >> Scene scene = new Scene(vbox, 1200, 650, >> Color.WHITESMOKE); // Set >> main Stage color >> >> // Application Close Confirmation Dialog >> dialog = new DialogPanels(); >> dialog.initClosemainAppDialog(**mainStage); >> >> // Application Hot Keys Utilization >> hotkey = new HotKey(); >> hotkey.initApplicationHotKeys(**mainStage, scene); >> >> mainStage.setScene(scene); >> >> Rectangle2D primaryScreenBounds = >> Screen.getPrimary().**getVisualBounds(); >> >> // Set Stage boundaries to visible bounds of the main >> screen >> mainStage.setX(**primaryScreenBounds.getMinX())**; >> mainStage.setY(**primaryScreenBounds.getMinY())**; >> mainStage.setWidth(**primaryScreenBounds.getWidth()**); >> // >> Maximum >> width of the display >> mainStage.setHeight(**primaryScreenBounds.getHeight(**)); >> // Maximum >> height of the display >> //mainStage.show(); >> >> } >> >> >> I tried to run the code on JVM 8b99 but I get error which I >> described here: >> >> >> https://javafx-jira.kenai.com/**browse/RT-31859<https://javafx-jira.kenai.com/browse/RT-31859> >> >> Is this JVM bug or I have a bug into my code? >> >> >> >> >> >>
