我有一个设置为 NxN 大小的 GridLayout 的 JFrame。N 由用户在程序开始时作为命令行给出。NxN 模式中的 JButton 被添加到 JPanel 的窗口中,由 GridLayout 设置(我认为)。
每个 JButton 是否需要自己的 JPanel 才能使用 GridLayout?我的印象是,您可以为所有按钮设置一个 JPanel,并将 JPanel 设置为 JButtons 的 GridLayout。我想在按钮数组的左侧添加另一个 JPanel 以显示按钮单击(JLabel)和同一左侧 JPanel 中的重置按钮。
这是(一点)我的代码,其中 N 由用户给出,system 是我的后台进程类,ButtonEvent 是 ActionListener/actionPerformed 的类:
JFrame window = new JFrame("");
GridLayout layout = new GridLayout(N,N);
window.setLayout(layout);
for (int row = 0; row < N; row++){
for (int col = 0; col < N; col++){
JPanel panel = new JPanel();
JButton b = new JButton ("("+row+","+col+")");
window.add(b).setLocation(row, col);
panel.add(b);
b.addActionListener(new ButtonEvent(b, system, row, col));
window.add(panel);
}
}
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.pack();
window.setVisible(true);
这就是我所拥有的(N = 4):
这是(大约)我正在寻找的(N = 4):
我需要/想要的只是两个(或更多)JPanels,它们的设置大致类似于上面,而且我尝试过的所有布局管理器都不能很好地与 GridLayout 布局 JFrame 配合使用。