gpt4 book ai didi

java - 动态添加组件到 JPanel 更改组件大小

转载 作者:太空宇宙 更新时间:2023-11-04 12:50:33 27 4
gpt4 key购买 nike

  1. 我正在尝试动态地将组合框添加到 JPanel,但组合框占据了整个面板。根据组合框计数,组合框的大小正在变化,但我想要组合框的固定大小,并且我需要在另一个组合下方/在新行中逐个创建组合框。
  2. 如何设置面板中组件的位置。

    JComboBox startDate = new JComboBox();
    startDate.setPreferredSize(new Dimension(80,25));
    jPanelStartDate.add(startDate);
    jPanelStartDate.setLayout(new GridLayout(0, 3, 10, 10));
    jPanelStartDate.revalidate();

最佳答案

好吧,你有不止一个选择。您可以使用 BoxLayout带有 Y 轴和 rigid area或者您可以使用更高级、复杂和动态的GridBagLayout 。以下是具有 BoxLayout 和刚性区域的示例。

 JFrame frame = new JFrame("Test");
JPanel panel = new JPanel();

BoxLayout boxLayout = new BoxLayout(panel, BoxLayout.Y_AXIS);
panel.setLayout(boxLayout);

for(int index = 0; index < 5; ++index){

JComboBox<String> box = new JComboBox<>(new String[]{"a", "b", "c"});

box.setMaximumSize(new Dimension(50, 50));
box.setMinimumSize(new Dimension(50, 50));

panel.add(box);

panel.add(Box.createRigidArea(new Dimension(10, 10)));
}

frame.setContentPane(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(new Dimension(300, 300));
frame.setVisible(true);

您可以更改尺寸,特别是刚性区域的尺寸,以根据您的需要调整组件的空间和尺寸。

关于java - 动态添加组件到 JPanel 更改组件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35871198/

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