0

我决定JToolBar通过继承 BasicToolBarUI 来拥有自己的自定义 UI,作为我Swing程序的一部分。

它在 OS X (10.6) 和 Windows (7) 下运行良好,但在 Linux 上运行时出现问题:

如果摆动分量是

  • 使用SystemLookAndFeel(显示使用 Java LAF)
  • 使用 UI BasicToolBarUI(为了简化问题。有了这个它已经不起作用了)
  • 在 Linux (Ubuntu 10.10) 下运行

整体JToolBar 不再出现。

有人可以帮忙吗?如何让它再次出现在 Linux 上?先感谢您。

(我已经完成了自定义 UI,以便用户仍然能够将工具栏移动到窗口的其他边缘,但防止它进入浮动状态。)

干杯,


我的SSCCE:

// Set the system look and feel:
try { 
 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
 e.printStackTrace();
}

// Create frame
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(200, 100));

// Create toolbar
JToolBar toolbar = new JToolBar(JToolBar.HORIZONTAL);
toolbar.add(new JButton("Foo"));
// With this line toolbar doesn't appear any more (only) on Linux.
toolbar.setUI(new BasicToolBarUI());

// Show UI
panel.add(toolbar);
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
4

1 回答 1

0

你可能看不到它,因为你没有添加任何东西(动作、按钮等)。空工具栏的高度通常为 1-2 像素。

更新:从我可以通过查看 BasicToolBarUI 可以看出,它并没有真正做任何事情 - 你必须实现尺寸计算并自己绘制以获得正确的结果

于 2010-10-11T13:05:26.400 回答