我试图更改我的组件属性。比如将它们的对齐设置为向右或向左。我在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,我想我不能改变我的按钮'属性。有什么办法可以运行这段代码吗?
答案 0 :(得分:3)
我想我无法改变我的按钮'特性
不,那不是真的。 final
适用于变量,这就是全部。它不会阻止对对象的更改。
换句话说,这将是无效的:
exL = new FlowLayout(...); // Trying to change a final variable
...但是调用setAlignment
等绝对没问题。