学习重构代码:是否有一种简便的方法可以将所有按钮设置为具有相同的尺寸?
Learning to refactor code: is there a short hand way of setting all buttons to have the same dimensions?
我刚刚完成了我的第一个 java 程序,现在我正在尝试重构代码并使其更 efficient/readable。我有一堆按钮都共享相同的设置(除了它们的位置):
JOneCarThree.setSize(new Dimension(50, 50));
JOneCarThree.setLocation(50, 210);
JOneCarThree.setOpaque(false);
JOneCarThree.setContentAreaFilled(false);
JOneCarThree.setBorderPainted(false);
F.add(JOneCarThree);
JOneCarFour.setSize(new Dimension(50, 50));
JOneCarFour.setLocation(10, 210);
JOneCarFour.setOpaque(false);
JOneCarFour.setContentAreaFilled(false);
JOneCarFour.setBorderPainted(false);
F.add(JOneCarFour);
JTwoCarOne.setSize(new Dimension(50, 50));
JTwoCarOne.setLocation(240, 130);
JTwoCarOne.setOpaque(false);
JTwoCarOne.setContentAreaFilled(false);
JTwoCarOne.setBorderPainted(false);
F.add(JTwoCarOne);
JTwoCarTwo.setSize(new Dimension(50, 50));
JTwoCarTwo.setLocation(240, 90);
JTwoCarTwo.setOpaque(false);
JTwoCarTwo.setContentAreaFilled(false);
JTwoCarTwo.setBorderPainted(false);
F.add(JTwoCarTwo);
JTwoCarThree.setSize(new Dimension(50, 50));
JTwoCarThree.setLocation(240, 50);
JTwoCarThree.setOpaque(false);
JTwoCarThree.setContentAreaFilled(false);
JTwoCarThree.setBorderPainted(false);
有没有办法一次性设置这些设置?非常感谢任何帮助,谢谢!
我能想到的最好方法就是为您分别对按钮执行的每个操作创建一个方法,然后在每个按钮上调用它。不是最好的,但它是 1 行而不是 6 行,每个按钮加上一个方法。
首先我会使用一个方法,我会在每个按钮上调用它:
void addButtonAt(Button b, int x, int y) {
b.setSize(new Dimension(50, 50));
b.setLocation(x, y);
b.setOpaque(false);
b.setContentAreaFilled(false);
b.setBorderPainted(false);
F.add(b);
}
然后你可以通过将按钮放在一个数组中并在代码中对齐它们来获得更多花样:
Button[] buttons = new Button[] {
JOneCarThree,
JOneCarFour,
JTwoCarOne
}
for(int i = 0; i < buttons.size(); i++) {
addButtonAt(buttons[i], 100, 100 + i * 55);
}
我刚刚完成了我的第一个 java 程序,现在我正在尝试重构代码并使其更 efficient/readable。我有一堆按钮都共享相同的设置(除了它们的位置):
JOneCarThree.setSize(new Dimension(50, 50));
JOneCarThree.setLocation(50, 210);
JOneCarThree.setOpaque(false);
JOneCarThree.setContentAreaFilled(false);
JOneCarThree.setBorderPainted(false);
F.add(JOneCarThree);
JOneCarFour.setSize(new Dimension(50, 50));
JOneCarFour.setLocation(10, 210);
JOneCarFour.setOpaque(false);
JOneCarFour.setContentAreaFilled(false);
JOneCarFour.setBorderPainted(false);
F.add(JOneCarFour);
JTwoCarOne.setSize(new Dimension(50, 50));
JTwoCarOne.setLocation(240, 130);
JTwoCarOne.setOpaque(false);
JTwoCarOne.setContentAreaFilled(false);
JTwoCarOne.setBorderPainted(false);
F.add(JTwoCarOne);
JTwoCarTwo.setSize(new Dimension(50, 50));
JTwoCarTwo.setLocation(240, 90);
JTwoCarTwo.setOpaque(false);
JTwoCarTwo.setContentAreaFilled(false);
JTwoCarTwo.setBorderPainted(false);
F.add(JTwoCarTwo);
JTwoCarThree.setSize(new Dimension(50, 50));
JTwoCarThree.setLocation(240, 50);
JTwoCarThree.setOpaque(false);
JTwoCarThree.setContentAreaFilled(false);
JTwoCarThree.setBorderPainted(false);
有没有办法一次性设置这些设置?非常感谢任何帮助,谢谢!
我能想到的最好方法就是为您分别对按钮执行的每个操作创建一个方法,然后在每个按钮上调用它。不是最好的,但它是 1 行而不是 6 行,每个按钮加上一个方法。
首先我会使用一个方法,我会在每个按钮上调用它:
void addButtonAt(Button b, int x, int y) {
b.setSize(new Dimension(50, 50));
b.setLocation(x, y);
b.setOpaque(false);
b.setContentAreaFilled(false);
b.setBorderPainted(false);
F.add(b);
}
然后你可以通过将按钮放在一个数组中并在代码中对齐它们来获得更多花样:
Button[] buttons = new Button[] {
JOneCarThree,
JOneCarFour,
JTwoCarOne
}
for(int i = 0; i < buttons.size(); i++) {
addButtonAt(buttons[i], 100, 100 + i * 55);
}