I want to create an applet with first form have multiple button, each button takes me to another form to perform a specific task.
How to do that using a Java applet?
There are lots of different ways to do this. The details depend on what exact effect and feel you are after. For example:
A CardLayout in the CENTER controlled by a JList (the menu) in the LINE_START of a BorderLayout.
A JTabbedPane, though that doesn't quite fit the use-case here.
For a blocking component, look to a free floating modal JDialog or a JOptionPane. This encourages the user to concentrate on one 'transaction' (e.g. new|edit|delete) at a time.
Non modal dialogs for when the user can have multiple dialogs/transactions open in parallel.
...
See also
A Visual Guide to Layout Managers
A Visual Guide to Swing Components (Java Look and Feel) (currently an HTTP 401 error here..).
More on using layout managers or combinations of them1, along with layout padding & borders for white space2.
Related
I'm trying to make all my components to resize properly with JFrame Netbeans, but if I put the auto resizing to my components, it has like a margin between them, and if I try to put them together, it messes up the components , and I need them to be touching each other.
Thanks!
Double-click on the extra space between the components: it should open a dialog where you can change its size.
You can also click the extra space, and use the mouse wheel.
Netbeans form designer is very powerful and handy when you master it, but it requires some effort at first, especially for large user interfaces. If not already done, take some time to follow this tutorial: https://netbeans.apache.org/kb/docs/java/quickstart-gui.html
Also, if your user interface is large, it's better to break it in several smaller panels. You can design each panel independently with the form designer.
I have a task to create a desktop app and I decided to use Swing as I have some experience with it. Also I am using Intllij and I noticed it have a form creator visual interface so I want to use it because its easier.
Samples of my interface is attached here. Its not hard but I dont know which controls to use in order to make something like this. On startup I need to have some text on the right side of the window, then on press on different button on the left to change that text with some other controls like fields labels check boxes etc. Its bit like tabs but I cannot use the JTabbedPane because it become with too different design. Could you advice me which controls to use and how to use them in order to achieve this design ?
Here is the design:
Also I am using Intllij and I noticed it have a form creator visual interface so I want to use it because its easier.
It isn't easier as you end up spending time learning the IDE instead of learning Swing. Any code that is generated will not be maintainable if you ever need to switch to a different IDE.
Learn how to create/maintain the GUI forms manually.
, then on press on different button on the left to change that text with some other controls like fields labels check boxes etc
Start with the standard BorderLayout for the frame. Then you create a panel with your buttons to display on the left. You create a second panel that uses a CardLayout in the CENTER of the BorderLayout. Then when you click a button you swap the panel that is displayed in the CENTER.
Read the section from the Swing tutorial on Layout Managers. There are sections on:
How to Use BorderLayout
How to Use CardLayout
to get your started with working examples.
If you are creating a commercial application(rather then as a leaning experience) consider using JIDE Common Layer as the MultiplePageDialog provides the functionality you seem to be describing:
In this case a series of buttons on the left controlling a panel on the right
I am creating simple application in java - Eclipse - WindowBuilder Editor. JFrame`s contentPane has JGoodies FormLayout in which I have to place 3 or 4 Panels - depending on mode.
It is proper way to make if construction that decides if content pane will be divided 1x3 or 1x4(facilitation because between all I use relatedgaps and so on..)?
I am not sure if this is good approach but I do not know how can I do this in other way than if construction. It has to be practical and flexible approach - to handle resizing the window, et cetera..
Common approaches for dynamic layout include these:
Use revalidate(), and possibly repaint(), to layout a Container again after adding or removing components, as shown here.
Replace the layout and validate() the Container, as shown here.
Use CardLayout to replace one panel with another, as shown here and here.
I have a general question that is Java related.
I am writing an application that has a GUI menu. I am trying to change one part of the GUI menu based on the selection of a Radio button.
Do I need to:
Redraw the whole window or just update that part with:
setVisible(true)?
If I just use the statement from #1 above .. the GUI is fine -- until I move the mouse over it and then I see the previous button choice. What am I doing wrong?
Swing components have a repaint(), revalidate(), and doLayout() method. One of those should probably be able to redraw whichever pieces you want. However, doLayout is not something that you should be taking responsibility for, that's the layout engines responsibility.
You may also want to check out this post, the first response has a pretty good explanation, and links to an article with more detail.
In terms of the second part of your question, I'm not sure, but we may need to see some code to get an idea. Is the 'replaced area' actually being removed from the view?
..in my application the user select which device platform type they want top test (that choice is a set of two radio buttons on the left). When the user selects either Android or iOS, the center grouping of check boxes changes to reflect a group of android devices they can test or a group of iOS devices that they can test.
Put a panel in the 'center grouping'.
Use a CardLayout for the panel.
Add both iOS & Android controls to the panel with the card layout.
Flip between them as needed.
Call revalidate() on the top level component.
I am using Java Swing and I designed a form page with a few buttons like play, pause, stop & break. They have different sizes, so they seem bad. I want to set size of the buttons to the same size.
How can I do that?
You can use setSize(Dimension d) where you specify the size of each button.
Or you can use different layouts to your application - I am mostly using the GridLayout which works really fine for me - see the tutorial
EDIT:
As mentioned in the comments: Better approach is to use some layout managers to handle the size for you. If you set size of button explicitly via command above, it can cause looking it "not nice" if you resize the window. Layout can do this for you more nicely.
BTW, if you will use
private JFrame application;
application.pack();
prior showing the application to the user, it can "miracelously" cure all "not nice" looking buttons and handles