gpt4 book ai didi

java - Swing 的设置大小问题

转载 作者:行者123 更新时间:2023-12-01 16:55:16 26 4
gpt4 key购买 nike

我正在尝试使用 Swing 创建一个非常简单的 GUI 面板。

这是我的代码:

    JPanel bigBlindSelectionPanel = new JPanel();
bigBlindSelectionPanel.setLayout(new BorderLayout());
bigBlindSelectionPanel.setBorder(BorderFactory.createLineBorder(Color.black));

JList bigBlindList = new JList<String>(model);

// Code to fill the list

JLabel bigBlindAddLabel = new JLabel("Add big blind numbers to queries");
bigBlindAddLabel.setBorder(new EmptyBorder(20, 20, 20, 20));

JScrollPane bigBlindScrollPanel = new JScrollPane(bigBlindList);
//bigBlindScrollPanel.setSize(0, 80);
bigBlindScrollPanel.setBorder(new EmptyBorder(20, 20, 20, 20));

JButton bigBlindAddButton = new JButton("Add");
bigBlindAddButton.addActionListener(this);
//bigBlindAddButton.setSize(0, 20);
bigBlindAddButton.setBorder(new EmptyBorder(20, 20, 20, 20));

bigBlindSelectionPanel.add(bigBlindAddLabel, BorderLayout.NORTH);
bigBlindSelectionPanel.add(bigBlindScrollPanel, BorderLayout.CENTER);
bigBlindSelectionPanel.add(bigBlindAddButton, BorderLayout.SOUTH);

frame.pack();
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(bigBlindSelectionPanel);
frame.setVisible(true);

enter image description here

这就是结果。

我有以下问题:

  1. 如何更改按钮和滚动面板的大小?设置大小操作(在上面的代码中注释)没有产生任何结果。

  2. 如何显示框架而不使用 setSize() 调用为其分配大小?如果我不调用具有高度和宽度的 setSize 方法,则不会显示任何内容。我这么问是因为我读过,如果可能的话,我不应该使用尺寸。

预先感谢您的帮助!

最佳答案

JList 的大小可以通过以下方式控制:

list.setVisibleRowCount(...);

滚动条将根据模型中的数据根据​​需要显示或消失。

按钮填充框架的宽度,因为这是 BorderLayout 的规则。如果您不希望按钮填充宽度,则可以将其包装在 JPanel 中。默认情况下,JPanel 使用 FlowLayout,它代表添加到其中的任何组件的大小:

JPanel wrapper = new JPanel();
wrapper.add(button);
frame.add(wrapper, BorderLayout.PAGE_END);

How do I display the frame without assigning it a size

您不需要 setSize() 方法。 pack() 方法将以组件的首选尺寸显示组件。

此外,您不需要为所有组件指定边框。您可以在创建 BorderLayout 时在组件之间创建间隙:

bigBlindSelectionPanel.setLayout(new BorderLayout(20, 20));

然后您可以在面板的右/左边缘添加边框。

关于java - Swing 的设置大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33945219/

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