public frame() {
JFrame frame = new JFrame("Test");
frame.setSize(400,300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridBagLayout());
int i = 4;
int j = 4;
JPanel[][] panelHolder = new JPanel[i][j];
for (int a = 0; a < i; a++) {
for (int b = 0; b < j; b++) {
panelHolder[a][b] = new JPanel();
add(panelHolder[a][b]);
}
}
panelHolder[3][2].setForeground(Color.BLUE);
JButton enter = new JButton("Enter");
panelHolder[0][0].add(enter);
frame.setVisible(true);
当我尝试将一个组件添加到面板或设置颜色没有任何变化时,我使用了其他地方的代码,但是我在前几天写下来并且无法再找到它,但循环正在添加JPanels到框架对吗?那么为什么我不能加入JPanels?
答案 0 :(得分:5)
问题是您的构造函数中有一个与您的类同名的对象,但是在调用setVisible()
时,您没有使用它。你可以通过使你的类扩展JFrame
,然后使用这个构造函数来解决这个问题:
public frame() {
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridBagLayout());
int i = 4;
int j = 4;
JPanel[][] panelHolder = new JPanel[i][j];
for (int a = 0; a < i; a++) {
for (int b = 0; b < j; b++) {
panelHolder[a][b] = new JPanel();
add(panelHolder[a][b]);
}
}
panelHolder[3][2].setForeground(Color.BLUE);
JButton enter = new JButton("Enter");
panelHolder[0][0].add(enter);
setVisible(true);
}