JavaFX 2.0 :: Dynamically Change CSS Class And Splash Screen Implementation
Jan 12, 2015
So it seems to reason that many JavaFX applications will want to dynamically change CSS styles. Is the best way to do this via the <node>.getStyleClass().add("classname")? The underlying data structure is an observable list. So lets say one has 5 styles that simply change the fill color of a circle to 5 different colors respectively. So if I have a condition in which I want to dynamically apply 1 of these 5 styles, the way I currently do this is by defining all 5 styles as strings in a list using a static initializer, then I call <node>.getStyleClass().removeAll(list), then getStyleClass().add("classname"). I do this to avoid adding the same style over and over and inflating the underlying list. Is this the correct way to manage dynamic CSS styles?
So I know there is a few different way to implement a splash screen. My app has definitely gotten larger over the last few months of development and I have noticed there is about a 5 second delay between when I run the application to when I see the main stage. I was thinking a splash screen would be nice to fill this time period. I have not had time to prototype using a Preloader and I fear that using an alternate, lightweight stage on startup would still take too long of a delay. I was actually thinking that using the nice and simple JVM argument "-splash:<image name>" would be simple, easy and effective. Unfortunately when I try to do this, the splash screen comes up but never goes away.
I'm making a game of checkers for my A2 Computing coursework which is due in within a week. I have completely finished the game, and only thing I have left to do is connect the two JPanels together via a CardLayout that I have made. However I am unsure how to do so
I have kept the code I am displaying to a minimal, hence I have removed all the action listeners for my buttons, anyway the problem I have is that, I would like it so that when the user clicks on the 'Multiplayer' button which is the array button ourButtons[1], it will then transition into my main game screen so that the user can then play a game of checkers.
Here is the main important GUI from my CheckerBoard class:
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class CheckerBoard extends JPanel implements ActionListener, MouseListener { // Main routine that opens an Applet that shows a CheckerBoard public static void main(String[] args) { new CLayout();
i have a field that varies from 10 to 3000 VARCHAR in DB. A field called IDTEXT in a database that can be even a single word or up to a max of 3000. I want to display that in a form. Based on its size i want to very the size of the <h:inputTextarea>. How can i do it..will i be able to set row property from bean?
I have a requirement where in the content of the text area is dynamically populated from the database. I am able to successfully retrieve and display the data on the text area.
However when the content is too large, I am not able to dynamically set the height of the text area. When I try to display the same as a label, the display is flawless, dynamically sets the height as per the content. So, I tried to create a label, with same content and dynamically bind the height to the preferred height as below, but it doesn't work.
// Generate User Note Description TextArea textArea = new TextArea(); Label text = new Label();
// SETTING THE TEXT TO A LABEL TO RETRIEVE THE HEIGHT text.setText(usrNotes.getNote().trim());
I am building an application that shows tables with large amounts of data containing columns that should display a thumbnail. However, this thumbnail is supposed to be loaded in the background lazily, when a row becomes visible because it is computationally too expensive to to this when the model data is loaded and typically not necessary to retrieve the thumbnail for all data that is in the table.
I have done the exact same thing in the past in a Swing application by doing this:
Whenever the model has changed or the vertical scrollbar has moved:
- Render a placeholder image in the custom cell renderer for this JTable if no image is available in the model object representing the corresponding row - Compute the visible rows by using getVisibleRect and rowAtPoint methods in JTable - Start a background thread that retrieves the image for the given rows and sets the resulting BufferedImage in a custom Model Object that was used in the TableModel (if not already there because of an earlier run) - Fire a corresponding model change event in the EDT whenever an image has been retrieved in the background thread so the row is rendered again
Btw. the field in the model class holding the BufferedImage was a weak reference in this case so the memory can be reclaimed as needed by the application.
What is the best way to achieve this behaviour using a JFX TableView? I have so far failed to find anything in the API to retrieve the visible items/rows. Is there a completely different approach available/required that uses the Cell API? I fail to see it so far.
What would be the most effective method to display data grabbed from a web source that is queried every second, for example the most recent EUR/USD price?
I already have access to the data stream, and I've built a simple FXML in javaFX that contains a grid; I'm not sure how to approach putting the live ticking data into the grid so it continues to update as the price changes, for example.
I think this might be the reason as this comboBox is not recognized at the import to the scene builder library. I can show up the import dialog of custom controls, but my custom ComboBox is not showing up. All other implementations are there correctly as they are loaded from my customControl.jar file
I use the ComboBoxListViewSkin for the functionality to scroll to an item in the combo as a user types a letter on the keyboard.
I do this by:
/** * This method scrolls the itemView of the items to the first item starting * with the given char or string * * @param pressedKey */ public void scrollToChar(String pressedKey) { String value = pressedKey.toUpperCase(); for (Object userEntry : getItems()) {
[Code] ....
I really need to show up my custom Combo in the scenebuilder, as otherwise the rest of my fxml is not editable in sceneBuilder 2.0 ....
I'm trying to implement a scene with a ScrollPane in which the user can drag a node around and scale it dynamically. I have the dragging and scaling with the mouse wheel working as well as a reset zoom.
Here's my issue:
I'm having trouble with the calculations to fit the node to the width of the parent. If I zoom in or out, the fit to width does not work. If I change the window size after running fitWidth() once, the fit to width does not work the second time.
Here is my code as an SSCCE and how it works...
1. (works) Mouse wheel will zoom in and out around the mouse pointer 2. (works) Left or right mouse press to drag the rectangle around 3. (works) Left double-click to reset the zoom 4. (doesn't work) Right double-click to fit the width
My calculations to re-position the rectangle to the upper left of the pane and fit it (i.e. scale it up or down) to the width of the parent are incorrect.
I have to implement the methods for what is happening if on some panel the action selected are Remove/Move/Change/Resize (Draw is already implemented).
The Applet in question draws ovals or rectangles on the screen and you can change the fill-color and outline-color of the shape. All this works already. I have dabbled with the move-method, but am not going anywhere.
With JSP can do? How do it? or exist other way? or: [URL] ....
I tested (i need some configuration): [URL] .... but this method download the jar file (and other libraries) right? and the program act same as a Desktop app, right?
I want to include JavaFX in my Eclipse IDE. I found intructions on how to import JavaFX Screen Builder into Eclipse 4.4 but my version is 4.2.2
I noticed that JavaFX is included into Java JDK now, I have installed Java JDK 8_45
The info on the oracle java pages is telling me i have to install JavaFX Screen Builder 2 before installing the plugin.
So, how to i proceed ???
I tried to inport e(fx)clipse plugin 1.2 and 0.9 but both refuses to install. Messages received as follows:
Cannot complete the install because one or more required items could not be found.
Software being installed: e(fx)clipse - IDE - FXML 1.2.0.201501301049 (org.eclipse.fx.ide.fxml.feature.feature.group 1.2.0.201501301049) Missing requirement: JavaFX Preview 1.2.0.201501301049 (org.eclipse.fx.ide.ui.preview 1.2.0.201501301049) requires 'bundle com.google.inject 2.0.0' but it could not be found Cannot satisfy dependency: From: e(fx)clipse - IDE - FXML 1.2.0.201501301049 (org.eclipse.fx.ide.fxml.feature.feature.group 1.2.0.201501301049) To: org.eclipse.fx.ide.ui.preview [1.2.0.201501301049]
I'm beginner with javaFX and i need to change language of the screen. but how to reload the screen when the language was changed. The application have a button where have the language available. I want just refresh screen when the user change language. Here is the start method to show the stage.
I want to use graphs in java. Is there any class in java for implementation of graph theory? I most create a graph and run DFS(Depth First Search) algorithm on that.
I can't recolate and align the button, the circle or the line where i want it to on the canvas. I want to be able to move the line where i want it, now it seems like all objects are stuck in the middle of the scene or canvas.
I have a list of Row objects and want to listen to changes in the name property of a Row object.
public class Row implements Serializable { private final SimpleStringProperty name = new SimpleStringProperty(this, "name", ""); public Row() { this(""); } public Row(String name) { this.name.set(name);
[Code] ....
I would expect to be notified 4 times. Line 23: Added, Line25, 26, 27: Update
But there are only 2 change events. For Line 26 and 27 there is no change event.
I change TreeTableColumn.text but I got a Exception
Exception in thread "JavaFX Application Thread" java.lang.ClassCastException: javafx.scene.control.TreeTableColumn cannot be cast to javafx.scene.control.TableColumn at com.sun.javafx.scene.control.skin.TableHeaderRow$10.invalidated(TableHeaderRow.java:277)
so I check TableHeaderRow . I find this method
private final InvalidationListener columnTextListener = new InvalidationListener() { @Override public void invalidated(Observable observable) { TableColumn<?,?> column = (TableColumn<?,?>) ((StringProperty)observable).getBean(); CheckMenuItem menuItem = columnMenuItems.get(column); if (menuItem != null) { menuItem.setText(getText(column.getText(), column)); } } };
We have developed a theme called default.css that is extending of the default caspian.css. What we want to do is offer users the ability to override values from default.css to change colors etc. How can that be done?