0

我想知道是否有人可以解决我在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 );
            }
        } );
    }
}

任何建议表示赞赏。

4

1 回答 1

2

Nimbus 中 JToolBar 的默认布局是:

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

你应该设置它:

    toolBar.setLayout(new BoxLayout(toolBar, BoxLayout.X_AXIS));
于 2012-05-24T21:58:18.267 回答