JButton 在使用 Nimbus 外观时在 JToolBar 中不可见



我想知道是否有人可以想出解决我在Nimbus外观和感觉方面遇到的以下布局问题的解决方法。

问题是工具栏中的按钮不可见,因为JToolBar布局管理器未正确考虑JTextField的宽度。Metal的外观和感觉似乎没有表现出此错误。

import java.awt.*;
import javax.swing.*;
public class TextFieldTest extends JFrame
{
    public TextFieldTest()
    {
        // Create the text field
        JTextField textField = new JTextField( 20 )
        {
            @Override
            public Dimension getMaximumSize()
            {
                return super.getPreferredSize();
            }
        };
        // Create the tool bar
        JToolBar toolBar = new JToolBar();
        toolBar.add( textField );
        toolBar.add( Box.createHorizontalGlue() );
        toolBar.add( new JButton( "Button" ) );
        // Layout the frame
        getContentPane().setLayout( new BorderLayout() );
        getContentPane().add( toolBar, BorderLayout.NORTH );
        setPreferredSize( new Dimension( 800, 600 ) );
        pack();
    }
    public static void main( String[] args )
    {
        SwingUtilities.invokeLater( new Runnable()
        {
            public void run()
            {
                TextFieldTest test = new TextFieldTest();
                test.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
                test.setVisible( true );
            }
        } );
    }
}

任何建议不胜感激。

Nimbus 中 JToolBar 的默认布局为:

class javax.swing.plaf.synth.SynthToolBarUI$SynthToolBarLayoutManager

您应该设置它:

    toolBar.setLayout(new BoxLayout(toolBar, BoxLayout.X_AXIS));

相关内容

  • 没有找到相关文章

最新更新