gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 07:46:34 24 4
gpt4 key购买 nike

我想知道是否有人可以想出一个解决方案来解决我在 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));

关于java - 使用 Nimbus 外观时,JButton 在 JToolBar 中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10745776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com