Java GridBagLayout从actionperformed编辑x和y

时间:2014-01-24 07:23:10

标签: java jbutton gridbaglayout

是否可以通过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;
        }
    }
}

1 个答案:

答案 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约束

  1. 定义新的网格包约束,就像我们之前所做的那样或
  2. 编辑panelNoteConstraints,如:
  3. panelNoteConstraints.gridx = 0; panelNoteConstraints.gridy = 1;

    重要的是这两种方法的结果是相同的。因为,在这两种方式中,您要在GridBagLaout中编辑常量值。那么答案就是你不想这样做。但是,如果您想要编辑组件的位置,那么revalidate()repaint()方法会有所帮助。