gpt4 book ai didi

java - 如何在Java swing中用背景颜色填充整个面板?

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

我最近开始学习Java,现在正在尝试使用Swing,所以我对此还很陌生。我正在尝试制作一个包含(在本示例中)1 行和 1 列的 gridbaglayout,因此我在布局中添加了一个带有一些背景颜色的 JPanel,但是背景颜色似乎仅针对文本的长度出现,而不针对文本的长度。整个面板。我希望背景颜色保留在行的整个长度上,

另外,我必须添加第二列,其权重较大,以确保我的面板不会自动居中,有更好的方法来实现吗?

这是我目前拥有的代码,

      public static void main(String args[]) {
JFrame mainFrame = new JFrame();
mainFrame.setSize(900, 600);
mainFrame.setLayout(new GridBagLayout());

JPanel roll = new JPanel();
roll.setBackground(new Color(190, 177, 245));

JLabel wageChangeTag = new JLabel("Change");

GridBagConstraints gRoll = new GridBagConstraints();

gRoll.gridx = 0;
gRoll.gridy = 0;
gRoll.weightx = 5;
gRoll.anchor = GridBagConstraints.CENTER;
roll.add(wageChangeTag, gRoll);

////////////// MAIN GRID//////////////////
GridBagConstraints gc = new GridBagConstraints();
gc.gridx = 0;
gc.gridy = 0;
gc.weightx = 5;
gc.anchor = GridBagConstraints.FIRST_LINE_START;
gc.weighty = 5;
mainFrame.add(roll, gc);

gc.gridx++;
gc.weightx = 0.1;
mainFrame.add(new JLabel(), gc);

mainFrame.setVisible(true);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

最佳答案

你看到的画的实际上都是你的JPanel,与里面的标签无关。例如,您可以通过为其添加边框来看到这一点(在设置背景后立即:

roll.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));

现在要使其水平扩展,请尝试在 JPanel GridBagConstraints 中添加以下行:

gc.fill = GridBagConstraints.HORIZONTAL;

关于java - 如何在Java swing中用背景颜色填充整个面板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55726522/

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