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 に答える