Re: L&F gotcha
In article <hqj377$gp1$1@news.eternal-september.org>,
markspace <nospam@nowhere.com> wrote:
Roedy Green wrote:
I figured out you must reset the decoration, after you change the L&F,
while the Frame is not realised, like this:
This didn't really work for me. It redrew the frame all right, but I
always got the Windows (my OS) style frame, never the requested L&F.
More work needed I think.
Here's the snippet of Code I changed from John's link. It was pretty
much a blind change, I didn't read through all of Rob Camick's code:
[...]
I get the same result: no change to the JFrame. I think this is the
expected result. The decorations of top-level containers such as JFrame
and JDialog are managed by the host OS. There are no UIManager defaults
for Frame or Dialog, but you can see each L&F's corresponding
decorations in InternalFrame:
<http://tips4java.wordpress.com/2008/10/09/uimanager-defaults/>
I got the same result when I used com.mindprod.common15.Laf with this:
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new JFrame();
JMenuBar menuBar = new JMenuBar();
menuBar.add(Laf.buildLookAndFeelMenu());
f.setJMenuBar(menuBar);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new JTree());
f.pack();
f.setVisible(true);
}
});
}
I also moved UIManager.getSystemLookAndFeelClassName() to the beginning
of preferredClassNames[], as it's a more reliable default.
--
John B. Matthews
trashgod at gmail dot com
<http://sites.google.com/site/drjohnbmatthews>