JButton over Image in JFrame - swing - java

I have an opened an image using JFrame in java. Now I want to display a button at particular location in that image to do certain task. But i feel it to be more challenging. Please give me an idea or source code to do my task.
waiting for valuable reply

You can make a JComponent and use a MouseListener to see if the user clicks in the area of the image. Thus you can execute your action if the user clicks.

Look at the LayeredPane layout manager. This will easily overlay a button on a picture.

Why don't you try to just add a click the image to run the command you want just like button use mouse listener. or just prompt a JOption pane for options for the Image?

Related

Java Swing - What's the proper way of doing a stage based GUI?

I'm currently developing the menu of my application and I would like to know what's the proper way of coding a "stage based menu". What I mean by stage based menu is that, user clicks a button, the entire interface changes to the next "stage". Here are the pictures I designed in Photoshop in order to explain my idea:
First picture would be the first stage and the second picture the second.
Each round looking thing is a JButton
So far I got the main menu (fist picture) made on eclipse using WindowBuilder, made it as a JPanel and then I instantiate it on the window class.
My idea was to have an event listener listen for clicks on each button and then once the even is triggered, have the JPanel variable on the frame change to the next "stage". So I was wondering if this is actually the proper way of doing this or are there any better ways?
You could use a Card Layout to make it easy to swap panels.
Check out the section from the Swing tutorial on How to Use Card Layout for more information and examples.

Gwt - Showing a pop up panel when user's touch more than one widget or link

I am creating a panel showing many different kind of widgets such as button. The panel allows to zoom in and zoom out. It is required to show whole panel in the beginning. However, some users may touch more than one button when the panel is too small.
I want to handler the situation like chrome in Android. When the user touches more than one link, a pop up panel will be showing.
What library or APIs may I use?
Thanks!
You could place your Buttons in a FocusPanel implementing a ClickHandler to open your desired popup- thus when your user clicked between two buttons the click is registered and you can handle it.
Note, you will have to place a FlowPanel in that FocusPanel to place more than one button inside.
If you want to react on hover instead of on click, use HoverHandler instead.

How do you add Background Image in JPanel (NetBeans GUI Builder)

I have JTabbedPane with five tabs and each have Jpanel i want add different images for each panel in NetBeans IDE
Right click on your project and add a new package, name it resources. This will need to be done so Netbeans imports your picture into that folder
Add a JLabel to the Panel
Hightlight the JLabel and go to the Properties pane on the right
In the property that says icon click the ... button. That will take you to a dialog
Choose External Image radio button
Click the ... next to the file text field
Pick your Image and click OK.
Click Import to Project
Click OK, You should see the image in your graphic layout
Note this will only give you an Image, but doesn't really act as a background, because the JLabel is it's own component. I'm not really sure how to achieve a backgroud with GUI Builder. I'm not too familiar with the technology. Though if you were to write your own code, there are numerous answers here on SO that I'm sure you'll find useful. The only tricky thing about GUI Builder is that they have auto-generated code that you really can't play around with, which circumvents what I know about creating a background image.
NOTE : this only works for JLabels as JPanels don't use Icon. An alternative would be to hand write your own JPanel code in the constructor and draw the image, overriding the paintComponent method.
Change the layout of your Jframe to null.
Create a jlabel and cover whole jframe with it.
Add your image to the icon property of the inserted jlabel.
Change the layout of jframe back to free layout.
You are done 👍👍
It worked for me
May be you'll find this link useful.
This tutorial shows you how to use the IDE's GUI Builder to generate the code to include images (and other resources) in your application. In addition, you will learn how to customize the way the IDE generates image handling code.
Handling Images in a Java GUI Application
Basically, following are the steps.
Drag a Label to the JFrame
Add a new package (for the image to be stored)
Select Label and go to the Properties category
Select the Icon property and click 'Import to Project...'
Select the image and then the newly created package
In Properties window of Label, select text property and delete it.

Making custom UI in swing

I need to make a custom ui which looks like the following image :-
I know how to change the button to that arrow shape and everything else.But I can't understand how to move those close ,restore and minimize buttons to the center and give them round shape (on Windows).
On Googling ,I found how to make custom shape windows but it doesn't meet my requirements.
Can anyone please tell me how to do this or any link.??
You will need to create your own title bar as another panel with buttons and then remove the window decoration on the frame.
JFrame frame = new JFrame(...);
frame.setUndecorated(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//This will close the frame and exit
To minimize and maximize, listen for button events and use:
frame.setState(Frame.ICONIFIED);//minimizes
frame.setState(Frame.NORMAL);//restores
See Frame.setState(int) for details.

Java Swing - user alerts

I am trying to build a user alert mechanism by bringing up the window to the front and then flashing the icon on the screen for the user. I have two questions with regards to this approach:
How can you find the current window you are at in Java and then de-minimize it and bring to front?
Is there a mechanism in Java that would enable me to simply show the icon for a second or two and then hide it, in the middle of the screen? If not, what would be the way to achieve that?
Thanks a lot for any replies.
How can you find the current window you are at in Java and then de-minimize it and bring to front
Window[] allWindows = Window.getWindows();
returns arrays of all Top-Level Containers from current JVM e.g. J/Frame, J/Dialog(JOptionPane), J/Window,
you can to test for (example) if (allWindows[i] instanceof JFrame) {
then WindowState returned WindowEvent
by bringing up the window to the front and then flashing the icon on the screen for the user
use undecodated JDialog (works toFront, toBack) with
create only once time
setDefaultCloseOperations(HIDE_ON_CLOSE)
use Swing Timer for hide JDialog
Is there a mechanism in Java that would enable me to simply show the icon for a second or two and then hide it, in the middle of the screen? If not, what would be the way to achieve that?
have look at Java Translucent Window, put there Icon to the JLabel (or to the JButton)
use Swing Timer for flashing by hiding Icon or swithing bewtween two or more Icons (three or four is good)
I think the simplest way to get the window ancestor is :
SwingUtilities.getWindowAncestor(yourComponent);

Categories