gpt4 book ai didi

JAVA布局情况

转载 作者:行者123 更新时间:2023-12-02 04:09:18 24 4
gpt4 key购买 nike

所以我将 JFrame 设置为全尺寸

temp.setExtendedState(JFrame.MAXIMIZED_BOTH); 

我添加了 3 个面板(边框布局),在 panel1 中我使用 JLabel 来显示图像:

img.getScaledInstance(600, 400,
Image.SCALE_SMOOTH);

panel2一样,panel3只是一些按钮。(我不会在这里发布整个代码),但是这段代码运行得很好。现在我想做的是:Jframe是全尺寸的,45%被panel1占据,45%被panel2占据,10%被panel3占据。如果我的图片到 dsiplay 太大而无法容纳 45%,则它会缩放以适合 JFrame 的 45%(如果它比刚刚显示的小)。有任何想法吗 ?

最佳答案

您可以使用 Darryl 的 Shrink Icon 。这是一个图标,您可以将其添加到JLabel,然后将JLabel 添加到您的JPanel

收缩图标的工作原理是:

  1. 如果没有足够的空间来显示图像,则会缩小图像
  2. 如果有足够的空间,则图像将在可用空间中居中。

我们不会对组件的空间分配进行硬编码。我们让每个组件占据它所需的空间。因此,对于您的主要布局,您将使用框架的 BorderLayout。

您将使用:

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

然后您将为图像创建第二个面板:

JPanel images = new JPanel( new GridLayout(0, 1) );
images.add( new JLabel(...) );
images.add( new JLabel(...) );
frame.add(images, BorderLayout.CENTER)

现在,图像面板将随着框架尺寸的变化而增大/缩小,并且标签也会根据可用空间而增大/缩小。

关于JAVA布局情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33947805/

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