Over a million developers have joined DZone.

Java Tips: Disabling the Maximize Button of a JFrame

· Java Zone

Navigate the Maze of the End-User Experience and pick up this APM Essential guide, brought to you in partnership with CA Technologies

image The truth is that there is no direct way to remove the maximize button off the JFrame as it is created by Windows and it is not painted using Swing so U can’t touch this.

Still many posts on the net are giving “creative” suggestions on how to remove the maximze button of “JFrame”. The simplest and yet effective solution is to replace JFrame with JDialog as the latter does not have a maximize button. Other feasible “Java-based” solution is  remove the title bar and painstakingly implement customized title bar.

Neutralizing the effect of maximization

The solution here neutralizes the effect of maximization and flashing a error message.

There are pros and cons to this approach. The pros is that it is still using JFrame and has minimise button (JDialog has no minimize button) and can be implemented quickly with few lines of code. The cons is that according to GUI guide rule, GUI component shouldn’t be displayed on screen if it doesn’t get used at all in under any circumstances, and beside the solution actually flash the screen as the JFrame maximize and get revert to previous size immediately.

Anyway, if JFrame is to be used and maximizing should prevented, the following does the trick.

- If maximize button clicked, the JFrame will maximize and then immediate revert back to previous size. Event is only fired after resizing not before, therefore there is no way to stop the resizing (eg ComponentListener, WindowListener). At the same time, a tooltip will be flashed just on the top right corner of the JFrame.

Video demonstration

 

The trick is the following code segment.

image 

So when the frame is maximized, it will immediate revert back to “restore” size while at same time giving a beep and flashing a tooltip.

So here is the source code

image File: MaximizeButtonDisabler.java (4kb)

From http://geekycoder.wordpress.com/

Thrive in the application economy with an APM model that is strategic. Be E.P.I.C. with CA APM.  Brought to you in partnership with CA Technologies.

Topics:

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}