【问题标题】:JButton wont change size or position on JPanelJButton 不会改变 JPanel 上的大小或位置
【发布时间】:2021-05-01 16:17:35
【问题描述】:

我在 JPanel 中添加了一个按钮并尝试更改按钮的大小和位置。我尝试了不同的代码行,但它们不起作用。还输入parent.setLayout(null);panel.setLayout(null); 将完全删除按钮和背景

代码如下:

import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.*;

public class app {

    public static void main(final String[] args) {
        final JFrame parent = new JFrame("CPS TEST");
        JButton button = new JButton("Button");
        JPanel panel = new JPanel();
        panel.setLayout(null);
        panel.add(button);
        panel.setBackground(Color.DARK_GRAY);
        parent.add(panel, BorderLayout.CENTER);
        parent.setSize(500, 300);
        parent.setBackground(Color.CYAN);
        parent.setLocationRelativeTo(null);
        parent.setVisible(true);
        parent.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

【问题讨论】:

  • 你没有给我们足够的信息。您如何尝试更改按钮的大小,何时更改?您发布的代码中是否存在某些行为与您预期的不同,如果是,它是什么?我们很乐意为您提供帮助,但我们无法为您编写问题。
  • @arcy 我想说的是,添加 button.setSize 不会改变按钮的大小,使用 button.setBounds 不会改变位置。
  • 这仍然不足以帮助您。您将按钮放在哪里、是否涉及布局管理器、是否对 UI 调度线程给予足够的关注都很重要。我花了很多时间猜测人们需要什么,但通常都被浪费了。您发布的程序(假设它完全运行)并不能说明您描述的问题 - 没有尝试在那里更改按钮的大小。我还建议您退后一步,告诉您总体上要做什么,而不是致电setSize()。我们仍然需要细节。
  • 试图改变按钮的大小和位置 - 为什么? Swing 组件旨在确定它们自己的首选尺寸。如果您尝试在文本周围添加额外的空间,请使用setMargin(...) 方法。布局管理器将根据布局管理器的规则定位按钮。如果您想要不同的位置,请使用不同的布局管理器。您已被要求提供您未提供的要求的详细信息,因此我们无法给出具体建议。 (1-)

标签: java swing jframe jpanel jbutton


【解决方案1】:

增加按钮大小的三种方法:

更改组件的位置值得单独提出一个问题,但更改按钮的大小很容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 2016-05-30
    相关资源
    最近更新 更多