Gor*_*sth 3 java swing layout-manager grid-layout
怎么加JLabel出来的GridLayout?我有一个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());
}
}
Run Code Online (Sandbox Code Playgroud)

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);
}
}
Run Code Online (Sandbox Code Playgroud)
sz为8.BorderLayout位置Flow Layout(本身是一个面板)或者Label出现在最外gui面板中的两个其他空位中的任何一个. info(FlowLayout)和content(GridLayout)面板也可以根据需要接受更多组件.PlayerGui (31 LOC)
WestPanel(30 LOC)不是一个很好的例子,因为它extends JPanel不是简单地保留一个实例,而是简短.
AmortizationLayout (53 LOC)作为一个例子特别好,因为它使用标题边框概述了父和子布局.
| 归档时间: |
|
| 查看次数: |
8607 次 |
| 最近记录: |