添加层(用户层)---表层

本文介绍了一个用于添加联系人的Java Swing界面组件的设计与实现。该界面允许用户输入姓名、年龄、性别、地址和电话等信息,并能将这些信息保存到地址簿中。文章详细展示了界面布局、组件设置及部分验证逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


/*
 * AddPanel.java
 *
 * Created on __DATE__, __TIME__
 */


package cn.hncu.addr.ui;


import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;


import javax.swing.JFrame;
import javax.swing.JOptionPane;


import cn.hncu.addr.AddressApp;
import cn.hncu.addr.business.AddressBusiness;


/**
 *
 * @author  __USER__
 */
public class AddPanel extends javax.swing.JPanel {
private JFrame mainFrame = null;
private String name;
private int age;
private String sex;
private String address;
private String tel;


/** Creates new form AddPanel */
public AddPanel(JFrame mainFrame) {
this.mainFrame = mainFrame;
initComponents();
myInitCompinents();
}


private void myInitCompinents() {
this.setOpaque(false);
buttonGroup1.add(radioFeman);
buttonGroup1.add(radioMan);
radioMan.setSelected(true);
radioMan.setOpaque(false);
radioFeman.setOpaque(false);
textAdrress.setOpaque(false);
textName.setOpaque(false);
textTel.setOpaque(false);
textAge.setOpaque(false);

}


//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {


buttonGroup1 = new javax.swing.ButtonGroup();
jLabel1 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
textName = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
textTel = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
textAdrress = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
textAge = new javax.swing.JTextField();
btnBack = new javax.swing.JButton();
btnAdd = new javax.swing.JButton();
radioFeman = new javax.swing.JRadioButton();
radioMan = new javax.swing.JRadioButton();


setMinimumSize(new java.awt.Dimension(800, 600));
setLayout(null);


jLabel1.setFont(new java.awt.Font("微软雅黑", 1, 24));
jLabel1.setText("\u6dfb\u52a0\u5730\u5740");
add(jLabel1);
jLabel1.setBounds(300, 40, 190, 60);


jLabel3.setFont(new java.awt.Font("微软雅黑", 0, 14));
jLabel3.setText("\u59d3\u540d\uff1a");
add(jLabel3);
jLabel3.setBounds(140, 150, 50, 30);


textName.setText("\u5f20\u4e09");
add(textName);
textName.setBounds(210, 150, 120, 30);


jLabel4.setFont(new java.awt.Font("微软雅黑", 0, 14));
jLabel4.setText("\u7535\u8bdd");
add(jLabel4);
jLabel4.setBounds(400, 150, 50, 30);


textTel.setText("13xxxxxxx");
add(textTel);
textTel.setBounds(470, 150, 120, 30);


jLabel5.setFont(new java.awt.Font("微软雅黑", 0, 14));
jLabel5.setText("\u6027\u522b\uff1a");
add(jLabel5);
jLabel5.setBounds(140, 220, 50, 30);


jLabel6.setFont(new java.awt.Font("微软雅黑", 0, 14));
jLabel6.setText("\u5730\u5740\uff1a");
add(jLabel6);
jLabel6.setBounds(140, 280, 50, 30);


textAdrress.addCaretListener(new javax.swing.event.CaretListener() {
public void caretUpdate(javax.swing.event.CaretEvent evt) {
textAdrressCaretUpdate(evt);
}
});

add(textAdrress);
textAdrress.setBounds(210, 280, 390, 30);


jLabel7.setFont(new java.awt.Font("微软雅黑", 0, 14));
jLabel7.setText("\u5e74\u9f84\uff1a");
add(jLabel7);
jLabel7.setBounds(400, 220, 50, 30);


textAge.setText("20");
add(textAge);
textAge.setBounds(470, 220, 120, 30);


btnBack.setFont(new java.awt.Font("微软雅黑", 1, 14));
btnBack.setText("\u8fd4\u56de");
btnBack.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnBackActionPerformed(evt);
}
});
add(btnBack);
btnBack.setBounds(430, 380, 81, 30);


btnAdd.setFont(new java.awt.Font("微软雅黑", 1, 14));
btnAdd.setText("\u6dfb\u52a0");
btnAdd.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnAddActionPerformed(evt);
}
});
add(btnAdd);
btnAdd.setBounds(150, 380, 80, 30);


radioFeman.setFont(new java.awt.Font("微软雅黑", 0, 14));
radioFeman.setText("\u5973");
add(radioFeman);
radioFeman.setBounds(300, 210, 50, 40);


radioMan.setFont(new java.awt.Font("微软雅黑", 0, 14));
radioMan.setText("\u7537");
add(radioMan);
radioMan.setBounds(210, 210, 50, 40);
}// </editor-fold>
//GEN-END:initComponents
private boolean check(){//检查
String str=textAdrress.getText();
if(str.indexOf(",")>=0)
{
JOptionPane.showMessageDialog(this, "不能输入\",\"请重新输入");
return false;
}
return true;
}
private void textAdrressCaretUpdate(javax.swing.event.CaretEvent evt) {
check();
}


@Override
protected void paintComponent(Graphics g) {
Image img = Toolkit.getDefaultToolkit().getImage(
"C:\\Users\\Public\\Pictures\\Sample Pictures\\flower.jpg");
g.drawImage(img, 0, 0, null);
this.repaint();//重新刷新
}


private void btnBackActionPerformed(java.awt.event.ActionEvent evt) {
mainFrame.setContentPane(new ListPanel(mainFrame));
mainFrame.validate();
}


private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {
//表现层代码的基本写
//1 收集参数
boolean flag = true;
name = textName.getText();
sex = radioMan.isSelected() == true ? radioMan.getText() : radioFeman
.getText();
try {
age = Integer.parseInt(textAge.getText());
} catch (NumberFormatException e) {
age = 0;
}
address = textAdrress.getText();
tel = textTel.getText();
AddressBusiness set = new AddressBusiness();
String str = name + "," + sex + "," + age + "," + address + "," + tel;
flag = set.add(str);
if (flag&&check()) {
mainFrame.setContentPane(new ListPanel(mainFrame));
mainFrame.validate();
} else {
JOptionPane.showMessageDialog(this, "添加失败!");
}
}


//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JButton btnAdd;
private javax.swing.JButton btnBack;
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JRadioButton radioFeman;
private javax.swing.JRadioButton radioMan;
private javax.swing.JTextField textAdrress;
private javax.swing.JTextField textAge;
private javax.swing.JTextField textName;
private javax.swing.JTextField textTel;
// End of variables declaration//GEN-END:variables


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值