FollowSteph Follow Steph as he posts Blog Blazer Friday

LandlordMax Mac Version

As many of you already know, we’ve been hard at work on a Mac OS X version of LandlordMax. So far it’s been going pretty well. Most of our issues in supporting the Mac have been visual, with very few real technical issues. That being said, we are currently experiencing two visual related issue that we’re finding harder to resolve. I know we’ll eventually figure it out, but I’d like to get the Mac version out sooner than later. Therefore, I’m putting out a help request to all developers who read FollowSteph for this one issue. If you know the answer, or if you have good pointers, I’d love to hear them. And if someone points us to a direct solution that we use (or the first person if there’s more than one), I’ll send you a $100 Amazon gift certificate to show my appreciation!

Before dwelving into the technical aspects, here’s some quick background. LandlordMax is written in Java, and therefore the port to the Mac OS has been relatively straightforward as I just mentioned. Although many of you might not know this, from the very beginning we programmed almost everything in LandlordMax to be operating system independent. Although it wasn’t always possible 100% of the time, it was for the vast majority. The biggest issue, as I alluded to above, is the visual look and feel and how that affects the screens.

The two biggest issues we’re currently encountering which we’re struggling with is related to the combo box (pull downs) within LandlordMax. In Windows, the combo boxes are the same size as the text fields whereas in the Mac OS they’re much larger (especially in regards to height, and only somewhat in length). Because of this, and because we have to suppport the 800×600 resolution (a full 15-20% of our customers still use this resolution), we’re very limited in screen space. What’s happening is that these combo boxes on the Mac OS are taking up much more space than they should, and hence pushing things down on the screen (and sideways as well). On some screens this isn’t a big issue, but others were space is very limited (for example the Scheduled Tabbed Panel), this means that some of the fields no longer show up on the screen, they’re pushed down off the screen.

Below is a screenshot below of LandlordMax on the Mac OS. What we’d like to do is bring the combo boxes down to the same size as the fields.

LandlordMax Property Management Software Screenshot

The second issue has to do with auto-fill combo boxes, such as the “Type of Payment” field in the screenshot. For some reason, the auto-fill combo boxes are not being rendered correctly. If you look at the screenshot closely (you can click on it to see the full sized screenshot), the field has half of the combo box missing. I suspect this also has to do with the same issue.

So far we’ve looked at a number of solutions which haven’t quite worked for us. The first, and what looked like the most promising, was the QuaQua Look and Feel. They’ve noticed this issue as well us and have rectified it in their own custom Look and Feel. When we implemented it, it did indeed resolve the combo box issue, but unfortunately it also caused many other issues. With this Java Look and Feel, they seem to overwrite many of the manual settings we programatically apply in the software. So for example, if we set a background color of light blue on a panel (or component), it seems to ignore this and apply it’s own Look and Feel. Therefore this solution isn’t quite working for us right now.

We’ve also looked at modifying the Java Look and Feel by just changing some properties, but as we’re not familiar with this aspect of the language (actually very few people are which is why I’m posting it here today), it’s just not working out for us as we intended. We’ve had some moderate success with this solution but not enough yet.

There are some other solutions we’ve looked at, but as far as I can tell, the best solution is to modify the existing Look and Feel. Either by modifying the Mac OS Look and Feel or by extracting what we need from the open source Quaqua project…

If any of you know how to do this for the combo box that would resolve both of our issues, I would be extremely grateful. Not only that, as a show of my appreciation, I will award a $100 Amazon gift certificate to the first person who can give me a direct solution that we end up using!

Like this article?


  •     Ryan
    · March 4th, 2007  · 3:29 pm  · Permalink

    How are your layouts handled? Based on how polished your screens are, I would guess you are using JGoodies Forms.

  •     Steph
    · March 4th, 2007  · 10:36 pm  · Permalink

    Hi Ryan,

    You’re correct, we’re using JGoodies. It’s a great library which we recommend.

  •     Patrick McKenzie
    · March 5th, 2007  · 8:46 am  · Permalink

    I can’t tell you that this will certainly work or not without your code and a Mac to test it on, but frequently you can fix Java display bugs by twiddling the window while it is offscreen (or twiddling it onscreen). For example, after you have everything initialized but before calling JFrame.setVisible(true), programmatically use JComboBox.setSelected(pick an element — I generally pick the largest one) and then clear the selection. This will frequently cause the offending element to expand to fit the data, which if your layout is operating properly should ripple-effect the other elements into the proper look.

    If twiddling it before it is visible doesn’t work , I generally move the window offscreen, setVisible it, and do the twiddling there. If that doesn’t work, use the same process but programatically resize the container the offending element is in.

    Generally, one or more of these techniques clears up the issue. They’re dirty, dirty hacks but they can be quicker than cleaning up someone’s Java implementation.

  •     Steph
    · March 5th, 2007  · 11:12 am  · Permalink

    Hi Patrick,

    Thank you for the tip, but thats not really the issue we’re experiencing. You can actually do what your saying with just the following line of java code (using the character “m” because it’s the widest in almost all fonts):

    What we’re actually look for is the ability to change the height of the jcombobox for the look and feel. If you look closely at the screenshot, it seems to take a lot more vertical space. And if you change the “Dimension”, it doesn’t really resolve it in a polished way…

  •     Ryan
    · March 5th, 2007  · 12:39 pm  · Permalink

    Could the problem be with JGoodies? The only suggestion I have is to try reimplementing one or two screens with a layout manager I recently discovered called PageLayout which is found at pagelayout.sourceforge.net.

  •     Steph
    · March 5th, 2007  · 2:34 pm  · Permalink

    Hi Ryan,

    Actually, it has to do with the Mac Look and Feel (through the UI Manager). They intentionally change the size of the combo boxes for the Mac UI Manager.

    With this Look and Feel it can also affect the auto-fill combo box. The person in that article actually suggest the Quaqua Look and Feel because of similar issues. However when we tried it (and it did resolve all our combo box issues which means we’re on the right track), it brought forth too many other Look and Feel issues (background colors were overwritten, etc.

  •     Steph
    · March 7th, 2007  · 12:34 am  · Permalink

    Thanks everyone for the help, it’s very appreciated. Hopefully we’ll be able to resolve this issue shortly and have the Mac version out sooner than later!

  •     Andy Brice
    · March 12th, 2007  · 1:37 pm  · Permalink


    Can’t you just put the controls inside a scrolling pane? Its not ideal – but its one solution.

  •     Steph
    · March 12th, 2007  · 9:32 pm  · Permalink

    Hi Andy,

    We could, but then it would no longer have the same polished look that we strive for. As well, it would take away from one of our principle differentiators, which is to be the “Easiest”…

  •     Werner Randelshofer
    · July 24th, 2007  · 7:41 am  · Permalink

    Dear Steph,

    > So for example, if we set a background color of light blue on a panel (or
    > component), it seems to ignore this and apply it’s own Look and Feel.

    Quaqua sets most of the components to non-opaque. That’s why setting the background color has no visual effect.

    To show the desired background color, you can either call setOpaque(true) on the component, or you can set the default settings of Quaqua to opaque, using the system property “Quaqua.opaque” to true: System.setProperty(“Quaqua.opaque”,”true”);

  •     Steph
    · July 24th, 2007  · 9:36 pm  · Permalink

    Hi Werner,

    If memory serves me correct, what you are suggesting did eventually work. And Quaqua got us 95% of the way there. It was only a few other things that we couldn’t resolve.

    It’s a great product, don’t get me wrong, we just couldn’t get to where we needed. For example, if memory serves me correct, we had problems with auto-complete combo box where half of the text was overlapped with the combo box (the bottom half was missing). Or something like that…

    If you’re interested in a very short contract job to help us resolve these final issues resolved, please contact me directly by email. I’d also be more than happy to showcase it here on this blog if we end up using it.

Write a reply:



LandlordMax Property Management Software

LandlordMax is the EASIEST
Property Management
Software available!
Try it for free!

Real Estate Pigeon

Real Estate Pigeon
The place to ask and answer
all your real estate questions

Blog Blazers: 40 Top Bloggers Share Their Secrets to Creating a High-Profile, High-Traffic, and High-Profit Blog!

Blog Blazers is a book that
features secrets from the
Top 40 Bloggers on the web

How to Generate Traffic to Your Website ebook

How to Generate Traffic to
Your Website
is an ebook for
to you achieve success


More resources from Stephane Grenier:
For people who work on the web
Blog Blazers
How to Generate Traffic to Your Website
The EASIEST Property Management Software available!

Copyright @2003-2024
LandlordMax Property Management Software

Disclaimer: This is a personal blog about my thoughts, experiences and ideas. The contents of this blog are for informational purposes only. No content should be construed as financial, business, personal, or any other type of advice. Commenters, advertisers and linked sites are entirely responsible for their own content and do not represent the views of myself. All decisions involve risks and results are not guaranteed. Always do your own research, due diligence, and consult your own professional advisors before making any decision. This blog (including myself) assumes no liability with regard to results based on use of information from this blog. If this blog contains any errors, misrepresentations, or omissions, please contact me or leave a comment to have the content corrected.