这是一个示例类
import javax.swing.*;
import java.awt.*;
public class Image {
public static void main(String[] args) {
JFrame f = new JFrame();
Layout lo = new Layout();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(new Dimension(500, 500));
f.setLocationRelativeTo(null);
f.getContentPane().add(lo.getGUI(), BorderLayout.CENTER);
f.setVisible(true);
}
}
这是随附的Layout类
import java.awt.*;
import javax.swing.*;
public class Layout {
private JPanel p;
public Layout() {
p = new JPanel(new GridLayout(5, 5, 1, 1));
p.setBackground(Color.BLACK);
JLabel[][] lbs = new JLabel[5][5];
for (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++) {
lbs[i][j] = new JLabel(".", JLabel.CENTER);
lbs[i][j].setBackground(Color.WHITE);
lbs[i][j].setOpaque(true);
p.add(lbs[i][j]);
}
}
public JComponent getGUI() {
return p;
}
}
代码的结果如下:
所以,我的问题是如何像上面的图像那样调整固定大小?我想稍后在其上添加组件,如按钮。在将GridLayout应用到JPanel后,我无法弄清楚如何设置固定大小的JPanel。我添加了GridLayout因为我需要它来显示类似于国际象棋的东西。除按钮外,我不会碰任何东西。 JPanel用于查看它。
我应该提到我将把网格中间的点改为其他符号(例如!或#)来表示5x5空间中的对象。我使用JLabel来呈现对象。如果我使用GridBagLayout,所有符号将被压缩在一个区域中。