开始add功能:
点击list的add按钮,我们将界面转向addPanel界面。还是界面传参技术。在addPanel面板中,我们可以学一个表现层代码的基本写法:1、收集参数(数据校验) 2、组织参数(值对象封装)3、调用逻辑层 4.根据逻辑层返回结果,导向不同对象。
在这里,我们用String型来收集数据和组织参数。并调用Myset(逻辑层)的add方法返回一个布尔值。如果成功,那么我们返回list界面并显示我们添加的对象。如果失败,我们弹出添加失败窗口。这里要提一点的是:为了使得返回的list面板也能读到我们创建的对象,所以这里我们逻辑层的Object数组是静态的,这样我们只要改一个,其他界面Myset中的数组也是跟着改变。
点击返回按钮即返回list界面。
addPanel界面效果图:
添加成功图:
添加失败图:
具体实现代码如下:
/*
* addJpanel.java
*
* Created on __DATE__, __TIME__
*/
package cn.hncu.ui;
import javax.management.RuntimeErrorException;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import cn.hncu.busines.Myset;
/**
*
* @author __USER__
*/
public class addJpanel extends javax.swing.JPanel {
private JFrame mainFrame = null;
/** Creates new form addJpanel */
public addJpanel(JFrame mainFrame) {
this.mainFrame = mainFrame;
initComponents();
this.setOpaque(false);
Icon bjImage=new ImageIcon("./image/beijing2.jpg");
JLabel bglbl=new JLabel(bjImage);
this.add(bglbl,new Integer(Integer.MIN_VALUE));
bglbl.setBounds(0, 0, bjImage.getIconWidth(), bjImage.getIconHeight());
this.validate();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
tfdName = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
tfdAge = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
tfdAddress = new javax.swing.JTextField();
Icon imageAdd=new ImageIcon("./image/anniu3.png");
btnAdd = new javax.swing.JButton(imageAdd);
Icon imageBack=new ImageIcon("./image/anniu2.png");
btnBack = new javax.swing.JButton(imageBack);
setMaximumSize(new java.awt.Dimension(800, 600));
setMinimumSize(new java.awt.Dimension(800, 600));
setLayout(null);
jLabel1.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 36));
jLabel1.setText("\u6dfb\u52a0\u5730\u5740");
add(jLabel1);
jLabel1.setBounds(360, 30, 160, 50);
jLabel2.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 18));
jLabel2.setText("\u59d3\u540d\uff1a");
add(jLabel2);
jLabel2.setBounds(180, 110, 80, 40);
add(tfdName);
tfdName.setBounds(250, 110, 200, 40);
jLabel3.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 18));
jLabel3.setText("\u5e74\u9f84\uff1a");
add(jLabel3);
jLabel3.setBounds(180, 200, 80, 24);
add(tfdAge);
tfdAge.setBounds(250, 190, 200, 40);
jLabel4.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 18));
jLabel4.setText("\u5730\u5740:");
add(jLabel4);
jLabel4.setBounds(180, 260, 52, 50);
tfdAddress.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tfdAddressActionPerformed(evt);
}
});
add(tfdAddress);
tfdAddress.setBounds(250, 270, 290, 40);
btnAdd.setBackground(new java.awt.Color(0, 153, 204));
btnAdd.setFont(new java.awt.Font("Microsoft YaHei UI", 2, 24));
btnAdd.setForeground(new java.awt.Color(153, 153, 255));
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(130, 420, 120, 60);
btnBack.setBackground(new java.awt.Color(102, 0, 255));
btnBack.setFont(new java.awt.Font("Microsoft YaHei UI", 2, 24));
btnBack.setForeground(new java.awt.Color(51, 102, 0));
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(460, 421, 120,60);
}// </editor-fold>
//GEN-END:initComponents
private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {
//1收集参数及简单的数据检验
String name=tfdName.getText();
String age=tfdAge.getText();
try {
int iAge = Integer.parseInt(age);
} catch (NumberFormatException e) {
throw new RuntimeException("格式错误");
}
String address=tfdAddress.getText();
//2组织参数 值对象包装
String str=name+","+age+","+address;
//3调用逻辑层
Myset set=new Myset();
boolean flag=set.add(str);
//根据逻辑层返回结果 导向不同的结果页面
if(flag){
mainFrame.setContentPane(new listPanel(mainFrame));
mainFrame.validate();
}else{
JOptionPane.showMessageDialog(this, "添加失败");
}
}
private void btnBackActionPerformed(java.awt.event.ActionEvent evt) {
mainFrame.setContentPane(new listPanel(mainFrame));
mainFrame.validate();
}
private void tfdAddressActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JButton btnAdd;
private javax.swing.JButton btnBack;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JTextField tfdAddress;
private javax.swing.JTextField tfdAge;
private javax.swing.JTextField tfdName;
// End of variables declaration//GEN-END:variables
}