show hide panel in javafx using fxml - java

I have made the GUI of my javafx application in scenebuilder. I have correctly made the settings of placing the fxml and my application works perfect. Now I want to add action events to buttons and when a button is clicked, a panel should be shown and when other button is clicked, the other panel should be shown. Please help me. And remember that I am building my interface using scenebuilder i.e using fxml for my interface.
Thank you.

you can use the following code and hide the panes you want to hide
(paneid).setVisible(false);
and appear the new code
(paneid).setVisible(True);
here the id is the what you put for "fx:id" in scenebuilder.

What you can do is to write this code to hide the pane
(paneId).setVisible(false);
(paneId).setManaged(false);
and show it again by setting the parameters to true
(paneId).setVisible(true);
(paneId).setManaged(true);

Related

Creating a new window on button click - Vaadin14

I want to create a new Window using:
final Window window = new Window("Window");
this.getUI().addWindow(window);
This is from the Vaadin homepage https://demo.vaadin.com/sampler/#ui/structure/window
But unfortunately my IDE is showing the following error:
The constructor Window(String) is undefined.
When i delete the string, it says: the constructor Window() is not visible.
Why is that? In the vaadin demo it works just fine.
There is no Window class in Vaadin 14.
The demo page you linked in the question is about Vaadin 8.
In Vaadin Flow (Vaadin 10+), the Dialog is used instead of the old Window. It's not exactly the same as the old Window - for example the Dialog has no maximize or close button automatically. But along with other components you want to show within that Dialog, you can add for example a button that will close the dialog when clicked. Or let the dialog close when the user clicks outside it using dialog.closeOnOutsideClick(true);
Edit: go check out this vaadin blog post of a good looking Dialog example, with video (and code is also linked there): https://vaadin.com/blog/new-component-features-and-development-time-improvements-in-vaadin-14
The Window class is part of the Vaadin-Framework. It doesn't exist like that in rapidclipse and other IDE's. You have to write your own Window class (by extending Panel) or you can copy the Window class from their github.
refer to:
https://github.com/vaadin/framework/blob/master/server/src/main/java/com/vaadin/ui/Window.java
You are getting this error, because you are trying to access the Window class of the rapidclipse framework, which apparently has no constructor and is meant for something else.

Layout for Java Multi window appliciation

I need to know how to select a layout for a java swing application with multiple windows.
It has a dashboard kind home or main window with few icons(12 or more) on it. Clicking on an icon it will open a complex window on top of it then the main window is no longer visible. There will be another home icon to get back to main window on new view. Complex in the sense the opened window will have a tabbed layout. What i need to know is what layout should I use for this purpose.
Card layout and layered layout are the candidates I suppose. Or should I use separate frames or is there some other option available.
If the window can take the full screen and position the icons on it zooming appropriately according to the screen size would be great.
I'm glad if you can provide me a reference to a sample code.
Thank you in advance for helping me out.
I suppose you want to hide home screen when user opens another screen, and show it again when user clicks something like "Home" button.
For similar thing, I used JLayeredPane. It essentially allows you to sat Z-order for your components. In this case, you would have a JPanel for each screen you want to show, and you need to place it inside JLayeredPane, with home screen being initially on top. When you want to show another screen, you set it's layer to be topmost.

How to create a spoiler effect in java swing?

How to create a spoiler effect in java swing like in HTML+JS.
For example, there are a few buttons "show" and when you click on one of them, showing under it image or text:
What method can be implemented like this?
I assume this can be implemented using JTree but will must drawing own components.
You can use MySpoiler.setVisible(true) within the "show" button callback.
If you want this to toggle between visible and non-visible, you will have to change the listener after each click to reverse the visibility of the image. The image itself can be placed within a swing JLabel.

Java Swing - JFrame, change and show different content

I'm trying to do a GUI Menu with three buttons. When I click on one button I want it to take me to another part of the menu. This means writing new content to my existing JFrame Content Pane. How do I do this properly?
Every time I try this the button gets stuck and it does not take me anywhere.
Instead It should take me to the next menu I have created.
I have tried removing all content in the Pane and then adding new.
I have put the JFrames content pane in a separate class that handles writing content to it.
Could this be a problem?
Solved:
All I had to do was to repaint and validate the content pane.
Thanks for all the help.
BR,
YAU

JFrame in a Java desktop application

I am developing a desktop Java application with GUI implemented through Swing. I have made a JFrame and have added three buttons on it - Add, Edit, Delete.
Now I want that whenever a user clicks on any of the button, the content specific to that button appears besides those three buttons.
So how to implement this? Should I need to add a JPanel besides those three buttons and then add the content specific to the button to that JPanel?
So far, I have taken a JFrame and have added 3 buttons on it. That's it.
For the Add button, I want to add some buttons and textfields to add information to the database.
For the Delete button, I want to add some buttons to find records in the database based on the information entered through the user in the textfield that appears when the user clicks on the Delete button.
Similar type of content for Edit button.
So how to implement this. Should I need to add a JPanel besides those three buttons and then add the content specific to the button to that JPane
That would be fine. When you push the button, you can call JPanel.removeAll() to remove all the controls currently in the control, and then just do the layout again, specific to whatever button you pushed.
If you have custom swing controls, just add your custom control the JPanel using a BorderLayout and putting in the center.
Another option would be to use a CardLayout, and flipping between the cards when a user presses one of the buttons. If the layouts for the buttons never change, that would probably be a better way to do it. Obviously if the content changes between button presses, you'll need to redo the layout each time.
Either of Chad's or Alex's answers would be fine. You will probably need to call a combination of revalidate() and repaint() on the panel that you've changed, as in the past I've noticed Swing doesn't always like panels being swapped out.
Also, have you considered using a JTabbedPane instead of manually coding the interaction with the add/edit/delete buttons?
I haven't done a lot of Java programming, but I think using 2-3 different JPanel, and make visible the one you need depending on the button that was clicked would do the trick.
I'm not sure if this is the right approach though.
I was using a JFrame to add all buttons and make a new JFrame for a new window and hide a previous one.
gven way are better. I will do that now.

Categories

Resources