决赛不让我改变属性

时间:2014-10-31 18:18:48

标签: java user-interface

我试图更改我的组件属性。比如将它们的对齐设置为向右或向左。我在FlowLayout面板上有15个按钮。

final FlowLayout exL = new FlowLayout(FlowLayout.LEFT, 2, 3);

    JPanel panel1 = new JPanel();
    panel1.setLayout(exL);

    aligncom.addItemListener(new ItemListener() {
        @Override
        public void itemStateChanged(ItemEvent e) {
            int x = aligncom.getSelectedIndex();
            switch (x) {

                case 0: {
                    exL.setAlignment(FlowLayout.LEFT);
                    break;
                }
                case 1: {
                    exL.setAlignment(FlowLayout.RIGHT);
                    break;
                }
            }
        }
    });

我有我的部分代码。 " aligncom"是我的ComboBox。由于Java要我声明我的exL变量final,我想我不能改变我的按钮'属性。有什么办法可以运行这段代码吗?

1 个答案:

答案 0 :(得分:3)

  

我想我无法改变我的按钮'特性

不,那不是真的。 final适用于变量,这就是全部。它不会阻止对对象的更改

换句话说,这将是无效的:

exL = new FlowLayout(...); // Trying to change a final variable

...但是调用setAlignment等绝对没问题。