*/
public class UIUtils {
/**
- * Set a fake "native look & feel" for the application if possible
+ * Set a fake "native Look & Feel" for the application if possible
* (check for the one currently in use, then try GTK).
* <p>
* <b>Must</b> be called prior to any GUI work.
+ *
+ * @return TRUE if it succeeded
*/
- static public void setLookAndFeel() {
+ static public boolean setLookAndFeel() {
// native look & feel
+ String noLF = "javax.swing.plaf.metal.MetalLookAndFeel";
+ String lf = UIManager.getSystemLookAndFeelClassName();
+ if (lf.equals(noLF))
+ lf = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
+
+ return setLookAndFeel(lf);
+ }
+
+ /**
+ * Switch to the given Look & Feel for the application if possible
+ * (check for the one currently in use, then try GTK).
+ * <p>
+ * <b>Must</b> be called prior to any GUI work.
+ *
+ * @param laf
+ * the Look & Feel to use
+ *
+ * @return TRUE if it succeeded
+ */
+ static public boolean setLookAndFeel(String laf) {
try {
- String noLF = "javax.swing.plaf.metal.MetalLookAndFeel";
- String lf = UIManager.getSystemLookAndFeelClassName();
- if (lf.equals(noLF))
- lf = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
- UIManager.setLookAndFeel(lf);
+ UIManager.setLookAndFeel(laf);
+ return true;
} catch (InstantiationException e) {
} catch (ClassNotFoundException e) {
} catch (UnsupportedLookAndFeelException e) {
} catch (IllegalAccessException e) {
}
+
+ return false;
}
/**
* @return the {@link JScrollPane}
*/
static public JScrollPane scroll(JComponent pane, boolean allowHorizontal) {
+ return scroll(pane, allowHorizontal, true);
+ }
+
+ /**
+ * Add a {@link JScrollPane} around the given panel and use a sensible (for
+ * me) increment for the mouse wheel.
+ *
+ * @param pane
+ * the panel to wrap in a {@link JScrollPane}
+ * @param allowHorizontal
+ * allow horizontal scrolling (not always desired)
+ * @param allowVertical
+ * allow vertical scrolling (usually yes, but sometimes you only
+ * want horizontal)
+ *
+ * @return the {@link JScrollPane}
+ */
+ static public JScrollPane scroll(JComponent pane, boolean allowHorizontal,
+ boolean allowVertical) {
JScrollPane scroll = new JScrollPane(pane);
+
scroll.getVerticalScrollBar().setUnitIncrement(16);
+ scroll.getHorizontalScrollBar().setUnitIncrement(16);
+
if (!allowHorizontal) {
scroll.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
}
+ if (!allowVertical) {
+ scroll.setVerticalScrollBarPolicy(
+ JScrollPane.VERTICAL_SCROLLBAR_NEVER);
+ }
+
return scroll;
}
}