gpt4 book ai didi

java - GridLayout 中的 JLabel

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:57:52 28 4
gpt4 key购买 nike

如何从 GridLayout 中添加 JLabel?我有一个 8x8 网格布局。

Container content = getContentPane();
content.setLayout(new GridLayout(8, 8,2,2));
for (int f = 0; f < btnArr.length; f++){
for (int s = 0; s < btnArr.length; s++){
btnArr[f][s] = new JButton();
btnArr[f][s].addActionListener(this);
content.add(btnArr[f][s]);
btnArr[f][s].setBackground(randomColor());
}
}

最佳答案

SimpleNestedLayout

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

class SimpleNestedLayout {

public static void main(String[] args) {
Runnable r = new Runnable() {

@Override
public void run() {
JPanel gui = new JPanel(new BorderLayout(5,5));

int sz = 4;
Container content = new JPanel(new GridLayout(sz, 0, 2, 2));
for (int f=0; f<sz*sz; f++) {
content.add(new JButton());
}
gui.add(content, BorderLayout.CENTER);

Container info = new JPanel(
new FlowLayout(FlowLayout.CENTER, 50, 5));
info.add(new JLabel("Flow"));
info.add(new JLabel("Layout"));
gui.add(info, BorderLayout.PAGE_START);

gui.add(new JLabel("Label"), BorderLayout.LINE_END);

JOptionPane.showMessageDialog(null, gui);
}
};
SwingUtilities.invokeLater(r);
}
}

注意事项

  • 对于 8x8 网格,将 sz 更改为 8。
  • 如果提到的“标签”类似于在 GUI 中看到的标签,则它可能位于外部 BorderLayout 中,其中 Flow Layout (本身是一个面板)或 Label 以及最外面的 gui 面板中的其他两个空位中的任何一个。
  • info (FlowLayout) 和 content (GridLayout) 面板也可以根据需要接受更多组件。
  • 其他嵌套布局的简单示例。
    1. PlayerGui (31本地代码)
    2. WestPanel (30 LOC)不是一个很好的例子,因为它扩展了 JPanel 而不是简单地保留一个实例,而是很短。
    3. AmortizationLayout (53 LOC) 作为一个例子特别好,因为它使用带标题的边框勾勒出父子布局。

关于java - GridLayout 中的 JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14537443/

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