当前位置: 首页 > 知识库问答 >
问题:

使用布局管理器

翟丰茂
2023-03-14

我试图使用flowlayout创建一个厨房显示系统,并试图找出一种方法,当第一行已经满了时,在第二行添加另一个面板。GUI的宽度将根据用户的喜好而改变。当更宽时,它应该每行显示更多的组件。

共有1个答案

百里杰
2023-03-14

您可以使用FlowLayout。从如何使用flowlayout:

FlowLayout类将组件放在一行中,按其首选大小设置大小。如果容器中的水平空间太小,无法将所有组件放在一行中,则FlowLayout类将使用多行。如果容器的宽度超过某一行组件所需的宽度,则默认情况下,该行在容器内水平居中。

如果您希望布局在行太多时垂直滚动,可以使用禁用水平滚动的JScrollPane。您可以使用:

js.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
static class MyPanel extends JPanel implements Scrollable{

    @Override
    public Dimension getPreferredScrollableViewportSize() {

        return this.getPreferredSize();
    }

    @Override
    public int getScrollableUnitIncrement(Rectangle visibleRect,
            int orientation, int direction) {
        return 50;
    }

    @Override
    public int getScrollableBlockIncrement(Rectangle visibleRect,
            int orientation, int direction) {
        return 80;
    }

    /*
     * (non-Javadoc)
     * @see javax.swing.Scrollable#getScrollableTracksViewportWidth()
     */
    @Override
    public boolean getScrollableTracksViewportWidth() {
        return true;
    }

    @Override
    public boolean getScrollableTracksViewportHeight() {
        return false;
    }

}
js.setViewportView(myPanelInstance);
 类似资料:
  • 在一个GUI程序里,布局是一个很重要的方面。布局就是如何管理应用中的元素和窗口。有两种方式可以搞定:绝对定位和PyQt5的layout类 绝对定位 每个程序都是以像素为单位区分元素的位置,衡量元素的大小。所以我们完全可以使用绝对定位搞定每个元素和窗口的位置。但是这也有局限性: 元素不会随着我们更改窗口的位置和大小而变化。 不能适用于不同的平台和不同分辨率的显示器 更改应用字体大小会破坏布局 如果我

  • 在一个 GUI 程序里,布局是一个很重要的方面。布局就是如何管理应用中的元素和窗口。有两种方式可以搞定:绝对定位和 PyQt5 的 layout 类 绝对定位 每个程序都是以像素为单位区分元素的位置,衡量元素的大小。所以我们完全可以使用绝对定位搞定每个元素和窗口的位置。但是这也有局限性: 元素不会随着我们更改窗口的位置和大小而变化。 不能适用于不同的平台和不同分辨率的显示器 更改应用字体大小会破坏

  • *label1:combo1 label2:combo2 label3:combo3 label4:text1 label5:text2 label6:text3*

  • 我需要在中制作这样的表。 有什么想法如何做到这一点,以获得像下面图片上的布局吗?

  • 通过指定以像素为单位测量的绝对坐标,可以将GUI小部件放置在容器窗口内。 坐标相对于由其构造函数的size参数定义的窗口的尺寸。 窗口小部件在窗口内的位置由其构造函数的pos参数定义。 import wx app = wx.App() window = wx.Frame(None, title = "wxPython Frame", size = (300,200)) panel = wx

  • Java中的布局管理器是那些管理容器对象(如Frame, Dialog或Panel中控件放置的类。 布局管理器保持控件在框架中的相对位置,即使分辨率更改或框架本身已调整大小。 这些类实现了Layout interface 。 AWT library中定义了以下布局管理器 - BorderLayout FlowLayout GridLayout CardLayout GridBagLayout Sw