ツールバーで JToolbar と JButton を使用すると、Nimbus ルック アンド フィールに問題があります。金属を使用している場合、Nimbus だけで問題が発生し、ボタンが正しく表示されます。
ツールバーのボタンは、クリックまたはマウスオーバーされた場合にのみ表示され、Metal では標準で表示されます。私の問題または質問、この問題の解決策はありますか?
コード例:
ボタン: test、test1 はツールバーにあり、Visible ではなく、Button test2 はツールバーになく、通常のように見えます。ボタン テスト、test1 は、ツールバーにあるというだけで test2 のように見えます。
import java.awt.FlowLayout;
import javax.swing.*;
public class nimbus extends JFrame{
public nimbus()
{
//setLook("javax.swing.plaf.metal.MetalLookAndFeel");
setLook("javax.swing.plaf.nimbus.NimbusLookAndFeel");
FlowLayout fl = new FlowLayout();
fl.setAlignment(fl.LEFT);
this.setLayout(fl);
this.setSize(100, 200);
JToolBar tbar = new JToolBar();
tbar.setLayout(fl);
tbar.setSize(800, 40);
tbar.setFloatable(false);
JButton btn = new JButton("test");
btn.setSize(50, 23);
tbar.add(btn);
btn = new JButton("test1");
btn.setSize(50, 23);
tbar.add(btn);
this.add(tbar);
btn = new JButton("test2");
btn.setSize(50, 23);
this.add(btn);
}
public static void main(String[] args){
nimbus n = new nimbus();
n.setVisible(true);
}
public void setLook(String look)
{
try {
UIManager.setLookAndFeel(look);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}