【发布时间】:2012-05-09 08:15:16
【问题描述】:
我有一个设置为大小为 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):
我需要/想要的只是两个(或更多) JPanel,它们的设置大致与上面类似,而且我尝试过的所有布局管理器都不能很好地与 GridLayout 布局 JFrame 配合使用。
【问题讨论】:
标签: java eclipse swing user-interface layout