gpt4 book ai didi

java - 调整 JMenuBar 中 JTextField 的大小

转载 作者:行者123 更新时间:2023-12-01 08:13:39 27 4
gpt4 key购买 nike

我正在尝试添加 JTextField作为 JMenuBar 的搜索栏在我的顶部JFrame 。我的问题是 JTextField不断调整大小以占用 JMenuBar 中的所有可用空间,我不希望这样。我试过setPreferredSize()setMaximum Size() ,但这些不起作用,大概是因为 LayoutManager用于JMenuBar不尊重这些尺寸。我还尝试添加 JTextFieldJPanelFlowLayout并将面板添加到 JMenuBar ,但我得到的东西看起来像这样:

该面板位于 JMenuBar 的右侧,而且尺寸似乎是正确的,但除了这个奇怪的蓝色条之外,我看不到任何东西。

这是(我认为)相关的代码。如果需要更多信息,请告诉我:

       JPanel searchPanel = new JPanel();
searchPanel.setPreferredSize(new Dimension(100, 25));


JTextField searchBar = new JTextField(50);

String[] fields = {"title", "author", "subject", "publisher", "year", "circulating", "catalog" };


JComboBox searchFields = new JComboBox(fields);

JButton searchBtn = new JButton("search");

searchPanel.add(searchBar);
searchPanel.add(searchFields);
searchPanel.add(searchBtn);
searchPanel.setVisible(true);

fileMenu.add(open);
fileMenu.add(save);
fileMenu.add(exit);

libMenu.add(viewLib);
libMenu.addSeparator();
libMenu.add(newBook);
libMenu.add(search);

this.setJMenuBar(topBar);
topBar.add(fileMenu);
topBar.add(libMenu);
topBar.add(Box.createHorizontalGlue());
topBar.add(searchPanel);

最佳答案

这对我有用。

menuBar.add(Box.createHorizontalGlue());
JTextField textField = new JTextField(10);
textField.setMaximumSize( textField.getPreferredSize() );
menuBar.add(textField);

如果您需要更多帮助,请发布 SSCCE。

编辑:

同样,发布代码只是为了表明问题在于包含文本字段的最大大小。您选择如何执行此操作取决于您。

关于java - 调整 JMenuBar 中 JTextField 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15237450/

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