优化这段代码import javax.swing.*; import java.awt.*; class Calculator { public void init() { JFrame f=new JFrame("计算器"); f.setSize(400,200); f.setVisible(true); f.setLocationRelativeTo(null); JPanel p=new JPanel(new GridLayout(6,4,4,4)); p.setBackground(Color.white); p.setLayout(null); JTextField tf=new JTextField(100); JButton button1=new JButton(" % "); JButton button2=new JButton(" CE "); JButton button3=new JButton(" C "); JButton button4=new JButton(" ← "); JButton button5=new JButton(" 1/X "); JButton button6=new JButton(" X2 "); JButton button7=new JButton(" 2√X "); JButton button8=new JButton(" ÷ "); JButton button9=new JButton(" 7 "); JButton button10=new JButton(" 8 "); JButton button11=new JButton(" 9 "); JButton button12=new JButton(" × "); JButton button13=new JButton(" 4 "); JButton button14=new JButton(" 5 "); JButton button15=new JButton(" 6 "); JButton button16=new JButton(" - "); JButton button17=new JButton(" 1 "); JButton button18=new JButton(" 2 "); JButton button19=new JButton(" 3 "); JButton button20=new JButton(" + "); JButton button21=new JButton("+/-"); JButton button22=new JButton(" 0 "); JButton button23=new JButton(" . "); JButton button24=new JButton(" = "); button24.setBackground(Color.blue); f.add(p); p.add(button1);p.add(button2);p.add(button3);p.add(button4);p.add(button5); p.add(button6);p.add(button7);p.add(button8);p.add(button9);p.add(button10); p.add(button11);p.add(button12);p.add(button13);p.add(button14);p.add(button15); p.add(button16);p.add(button17);p.add(button18);p.add(button19);p.add(button20); p.add(button21);p.add(button22);p.add(button23);p.add(button24); } } public class TestCalculator { public static void main(String[] args) { new Calculator().init(); } }
时间: 2023-06-24 15:05:33 浏览: 101
这段代码的优化点如下:
1. 使用布局管理器:在代码中使用了 `p.setLayout(null)` 来设置面板的布局方式,这是一种不推荐的方式。可以使用布局管理器来代替手动设置组件的位置和大小,从而使 UI 更加灵活、可维护和可扩展。
2. 优化按钮的创建方式:可以使用循环语句来简化按钮的创建过程,从而减少代码冗余。
3. 使用变量来存储重复使用的组件:可以将 `JTextField` 和 `JPanel` 对象存储到变量中,从而使代码更加易读和易于维护。
4. 窗口设置:可以设置窗口在关闭时自动退出程序,避免程序继续运行。
优化后的代码如下:
```java
import javax.swing.*;
import java.awt.*;
class Calculator {
public void init() {
JFrame f = new JFrame("计算器");
f.setSize(400, 200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口时自动退出程序
f.setLocationRelativeTo(null);
JPanel p = new JPanel(new GridLayout(6, 4, 4, 4));
p.setBackground(Color.white);
JTextField tf = new JTextField(100);
String[] buttonLabels = {
" % ", " CE ", " C ", " ← ",
" 1/X ", " X2 ", " 2√X ", " ÷ ",
" 7 ", " 8 ", " 9 ", " × ",
" 4 ", " 5 ", " 6 ", " - ",
" 1 ", " 2 ", " 3 ", " + ",
"+/-", " 0 ", " . ", " = "
};
for (String label : buttonLabels) {
JButton button = new JButton(label);
if (label.equals(" = ")) {
button.setBackground(Color.blue);
}
p.add(button);
}
f.add(tf, BorderLayout.NORTH);
f.add(p, BorderLayout.CENTER);
f.setVisible(true);
}
}
public class TestCalculator {
public static void main(String[] args) {
new Calculator().init();
}
}
```
阅读全文