📄 usergui.java
字号:
package cha7;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class UserGUI implements ActionListener //实现监视器
{ private CalcEngine calc;
private JFrame frame;
private JTextField display;
private JLabel status;
/**构造方法*/
public UserGUI(CalcEngine engine)
{ calc = engine;
makeFrame();
frame.setVisible(true);
}
/**使界面可见*/
public void setVisible(boolean visible)
{ frame.setVisible(visible);
}
/* 布局界面*/
private void makeFrame()
{ frame = new JFrame(calc.getTitle());
JPanel contentPane = (JPanel)frame.getContentPane();
contentPane.setLayout(new BorderLayout(8, 8));
contentPane.setBorder(new EmptyBorder( 10, 10,10,10));//修改20,观察窗口
display = new JTextField();
contentPane.add(display, BorderLayout.NORTH);
JPanel buttonPanel = new JPanel(new GridLayout(0, 4));
addButton(buttonPanel, "7");
addButton(buttonPanel, "8");
addButton(buttonPanel, "9");
addButton(buttonPanel, "C");
addButton(buttonPanel, "4");
addButton(buttonPanel, "5");
addButton(buttonPanel, "6");
addButton(buttonPanel, "?");
addButton(buttonPanel, "1");
addButton(buttonPanel, "2");
addButton(buttonPanel, "3");
buttonPanel.add(new JLabel(" "));
addButton(buttonPanel, "0");
addButton(buttonPanel, "+");
addButton(buttonPanel, "-");
addButton(buttonPanel, "=");
addButton(buttonPanel, "=");
contentPane.add(buttonPanel, BorderLayout.CENTER);
frame.pack();
}
/**加入按钮*/
private void addButton(Container panel, String buttonText)
{ JButton button = new JButton(buttonText);
button.addActionListener(this);
panel.add(button);
}
/* 处理界面的事件*/
public void actionPerformed(ActionEvent event)
{ String command = event.getActionCommand();
if(command.equals("0") ||
command.equals("1") ||
command.equals("2") ||
command.equals("3") ||
command.equals("4") ||
command.equals("5") ||
command.equals("6") ||
command.equals("7") ||
command.equals("8") ||
command.equals("9"))
{ int number = Integer.parseInt(command);
calc.numberPressed(number);
}
else if(command.equals("+"))
calc.plus();
else if(command.equals("-"))
calc.minus();
else if(command.equals("="))
calc.equals();
else if(command.equals("C"))
calc.clear();
redisplay();
}
/*显示计算器当前值*/
private void redisplay()
{ display.setText("" + calc.getDisplayValue());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -