📄 mainwindow.java
字号:
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
public class MainWindow extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
BusinessObject bo;
JTextField txtNumber;
JTextField txtName;
JTextField txtAge;
JRadioButton rbtnMale;
JRadioButton rbtnFemale;
JTextField txtTel;
JTextField txtPhotoAddr;
JButton btnFirst;
JButton btnPrevious;
JButton btnNext;
JButton btnLast;
JButton btnAdd;
JButton btnSave;
JButton btnExit;
JButton btnAbout;
JLabel jlbPhoto;
public MainWindow(){
bo = new BusinessObject();
Container con = this.getContentPane();
con.setLayout(null);
JLabel lableNumber = new JLabel("用户编号:");
lableNumber.setBounds(20, 20, 60, 25);
con.add(lableNumber);
txtNumber = new JTextField();
txtNumber.setBounds(90, 20, 100, 25);
con.add(txtNumber);
JLabel lableName = new JLabel("姓名:");
lableName.setBounds(20, 55, 60, 25);
con.add(lableName);
txtName = new JTextField();
txtName.setBounds(90, 55, 100, 25);
con.add(txtName);
JLabel lableAge = new JLabel("年龄:");
lableAge.setBounds(20, 90, 60, 25);
con.add(lableAge);
txtAge = new JTextField();
txtAge.setBounds(90, 90, 50, 25);
con.add(txtAge);
JLabel labelSex = new JLabel("性别:");
labelSex.setBounds(20, 125, 60, 25);
con.add(labelSex);
rbtnMale = new JRadioButton("男");
rbtnMale.setBounds(90, 125, 50, 25);
rbtnMale.setSelected(true);
con.add(rbtnMale);
rbtnFemale = new JRadioButton("女");
rbtnFemale.setBounds(150, 125, 50, 25);
con.add(rbtnFemale);
ButtonGroup btnGroup = new ButtonGroup();
btnGroup.add(rbtnMale);
btnGroup.add(rbtnFemale);
JLabel lableTel = new JLabel("联系方式:");
lableTel.setBounds(20, 160, 60, 25);
con.add(lableTel);
txtTel = new JTextField();
txtTel.setBounds(90, 160, 150, 25);
con.add(txtTel);
JLabel lablePhotoAddr = new JLabel("照片路径:");
lablePhotoAddr.setBounds(20, 195, 60, 25);
con.add(lablePhotoAddr);
txtPhotoAddr = new JTextField();
txtPhotoAddr.setBounds(90, 195, 150, 25);
con.add(txtPhotoAddr);
jlbPhoto = new JLabel();
jlbPhoto.setBounds(220, 20, 100, 120);
jlbPhoto.setBorder(BorderFactory.createLineBorder(Color.BLACK));
con.add(jlbPhoto);
JPanel jpanelScan = new JPanel();
jpanelScan.setBounds(5, 225, 340, 60);
jpanelScan.setBorder(BorderFactory.createTitledBorder("浏览记录"));
con.add(jpanelScan);
JPanel jpanelOperation = new JPanel();
jpanelOperation.setBounds(5, 285, 340, 60);
jpanelOperation.setBorder(BorderFactory.createTitledBorder("操作"));
con.add(jpanelOperation);
btnFirst = new JButton("第一条");
btnPrevious = new JButton("上一条");
btnNext = new JButton("下一条");
btnLast = new JButton("后一条");
jpanelScan.setLayout(new FlowLayout());
jpanelScan.add(btnFirst);
jpanelScan.add(btnPrevious);
jpanelScan.add(btnNext);
jpanelScan.add(btnLast);
btnAdd = new JButton("新增(A)");
btnSave = new JButton("保存(S)");
btnExit = new JButton("退出(E)");
btnAbout = new JButton("关于(A)");
jpanelOperation.setLayout(new FlowLayout());
jpanelOperation.add(btnAdd);
jpanelOperation.add(btnSave);
jpanelOperation.add(btnExit);
jpanelOperation.add(btnAbout);
this.setSize(349, 380);
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
btnFirst.addActionListener(this);
btnPrevious.addActionListener(this);
btnNext.addActionListener(this);
btnLast.addActionListener(this);
btnAdd.addActionListener(this);
btnSave.addActionListener(this);
btnAbout.addActionListener(this);
btnExit.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
System.exit(0);
}
});
PropertiesUtil pro = new PropertiesUtil("telephone.properties");
String[] key = pro.getAllKeys();
if(key.length==0){
btnFirst.setEnabled(false);
btnPrevious.setEnabled(false);
btnNext.setEnabled(false);
btnLast.setEnabled(false);
}else{
displayUserInfo(bo.first());
}
txtNumber.setEditable(false);
}
public void actionPerformed(ActionEvent e) {
Object button = e.getSource();
if(button == btnFirst){
User user = bo.first();
displayUserInfo(user);
}else if(button == btnPrevious){
User user = bo.previous();
displayUserInfo(user);
}else if(button == btnNext){
User user = bo.next();
displayUserInfo(user);
}else if(button == btnLast){
User user = bo.last();
displayUserInfo(user);
}else if(button == btnAdd){
txtName.setEditable(true);
PropertiesUtil pro = new PropertiesUtil("telephone.properties");
String[] key = pro.getAllKeys();
if(key.length<10){
txtNumber.setText("0"+"0"+(key.length+1));
}else if(key.length>=10&&key.length<100){
txtNumber.setText("0"+(key.length+1));
}else if(key.length>=100){
txtNumber.setText(""+key.length+1);
}
txtNumber.setEditable(false);
txtName.setText("");
txtAge.setText("");
txtTel.setText("");
txtPhotoAddr.setText("");
rbtnMale.setSelected(true);
jlbPhoto.setIcon(null);
txtName.setEditable(true);
txtAge.setEditable(true);
txtTel.setEditable(true);
txtPhotoAddr.setEditable(true);
btnSave.setEnabled(true);
}else if(button == btnSave){
if (validateInfo()){
User user = new User();
user.setNo(txtNumber.getText());
user.setAge(new Integer(txtAge.getText()));
user.setPhone(txtTel.getText());
user.setName(txtName.getText());
user.setImagePath(txtPhotoAddr.getText());
user.setSex("M");
if (rbtnFemale.isSelected()) {
user.setSex("F");
}
bo.saveUser(user);
this.dispose();
new MainWindow();
}
}else if(button == btnAbout){
System.out.println("关于");
}
}
public boolean validateInfo(){
if ("".equals(txtNumber.getText().trim())) {
JOptionPane.showMessageDialog(this, "请新增一个联系人!");
return false;
}
if ("".equals(txtName.getText().trim())) {
JOptionPane.showMessageDialog(this, "用户姓名不能为空!");
return false;
}
if ("".equals(txtAge.getText().trim())) {
JOptionPane.showMessageDialog(this, "用户年龄不能为空!");
return false;
}
String strAge = txtAge.getText().trim();
if ( ! strAge.matches("[0-9]{1,3}")){
JOptionPane.showMessageDialog(this, "用户年龄不符合规则!");
return false;
}
return true;
}
public void displayUserInfo(User user){
txtNumber.setText(user.getNo());
txtName.setText(user.getName());
txtAge.setText(user.getAge().toString());
txtTel.setText(user.getPhone());
txtPhotoAddr.setText(user.getImagePath());
jlbPhoto.setIcon(new ImageIcon(user.getImagePath()));
String sex = user.getSex();
if ("M".equals(sex)) {
rbtnMale.setSelected(true);
} else {
rbtnFemale.setSelected(true);
}
}
public static void main(String[] args){
new MainWindow();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -