是否可以通过actionperformed编辑gridbaglayout中项目的x和y,而无需通过另一个gridbaglayout?对不起,如果这是一个愚蠢的问题,但我是java的新手。
public void actionPerformed(ActionEvent e){
for (int i = 0; i < 8; i++){
if (e.getSource() == buttons[i]){
gbc.gridx = xNow;
gbc.gridy = yNow;
}
}
}
答案 0 :(得分:2)
首先,您应该了解GridBagConstraints背后的概念。例如,
首先,我们可以为像这样的面板定义GridBagLayout
panelNote = new JPanel(new GridBagLayout());
然后您可以为该面板中的组件定义gridbag约束。在这种情况下,首先我们必须定义gridbag约束。
GridBagConstraints panelNoteConstraints = new GridBagConstraints(you can define constraints here);
然后我们添加如下项目:panelNote.add(getVisitPanel(), panelNoteConstraints);
现在,重要的是发挥作用,假设您想要向面板添加另一个组件。然后你可以用两种方式定义gridbag约束
panelNoteConstraints
,如: panelNoteConstraints.gridx = 0;
panelNoteConstraints.gridy = 1;
重要的是这两种方法的结果是相同的。因为,在这两种方式中,您要在GridBagLaout中编辑常量值。那么答案就是你不想这样做。但是,如果您想要编辑组件的位置,那么revalidate()
和repaint()
方法会有所帮助。