VE设计#3 表现层addPanel界面的实现

开始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

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Java带界面设计的学生信息管理系统的示例代码: ``` import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class StudentInfoManagementSystem extends JFrame implements ActionListener { private JLabel titleLabel; private JPanel loginPanel, mainPanel, addPanel, queryPanel, modifyPanel, deletePanel; private JTextField usernameField; private JPasswordField passwordField; private JButton loginButton, logoutButton, addButton, queryButton, modifyButton, deleteButton; private JTable resultTable; private JScrollPane resultPane; private Connection conn; private PreparedStatement pstmt; private ResultSet rs; public StudentInfoManagementSystem() { // 设置窗口标题和大小 setTitle("学生信息管理系统"); setSize(800, 600); setResizable(false); setLocationRelativeTo(null); // 创建登录界面 loginPanel = new JPanel(new GridLayout(3, 2, 5, 5)); loginPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); loginPanel.add(new JLabel("用户名:", JLabel.RIGHT)); usernameField = new JTextField(10); loginPanel.add(usernameField); loginPanel.add(new JLabel("密码:", JLabel.RIGHT)); passwordField = new JPasswordField(10); loginPanel.add(passwordField); loginButton = new JButton("登录"); loginButton.addActionListener(this); loginPanel.add(loginButton); // 创建主界面 mainPanel = new JPanel(new GridLayout(1, 4, 5, 5)); mainPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); addButton = new JButton("添加学生信息"); addButton.addActionListener(this); mainPanel.add(addButton); queryButton = new JButton("查询学生信息"); queryButton.addActionListener(this); mainPanel.add(queryButton); modifyButton = new JButton("修改学生信息"); modifyButton.addActionListener(this); mainPanel.add(modifyButton); deleteButton = new JButton("删除学生信息"); deleteButton.addActionListener(this); mainPanel.add(deleteButton); mainPanel.setVisible(false); // 创建添加学生信息界面 addPanel = new JPanel(new GridLayout(6, 2, 5, 5)); addPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); addPanel.add(new JLabel("姓名:", JLabel.RIGHT)); addPanel.add(new JTextField()); addPanel.add(new JLabel("学号:", JLabel.RIGHT)); addPanel.add(new JTextField()); addPanel.add(new JLabel("性别:", JLabel.RIGHT)); addPanel.add(new JComboBox(new String[]{"男", "女"})); addPanel.add(new JLabel("年龄:", JLabel.RIGHT)); addPanel.add(new JTextField()); addPanel.add(new JLabel("专业:", JLabel.RIGHT)); addPanel.add(new JTextField()); addPanel.add(new JButton("添加")); addPanel.add(new JButton("取消")); addPanel.setVisible(false); // 创建查询学生信息界面 queryPanel = new JPanel(new BorderLayout()); queryPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); queryPanel.add(new JLabel("请输入学号:", JLabel.LEFT), BorderLayout.NORTH); queryPanel.add(new JTextField(), BorderLayout.CENTER); queryPanel.add(new JButton("查询"), BorderLayout.EAST); resultTable = new JTable(10, 5); resultPane = new JScrollPane(resultTable); resultPane.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0)); queryPanel.add(resultPane, BorderLayout.SOUTH); queryPanel.setVisible(false); // 创建修改学生信息界面 modifyPanel = new JPanel(new GridLayout(6, 2, 5, 5)); modifyPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); modifyPanel.add(new JLabel("请输入学号:", JLabel.RIGHT)); modifyPanel.add(new JTextField()); modifyPanel.add(new JLabel("姓名:", JLabel.RIGHT)); modifyPanel.add(new JTextField()); modifyPanel.add(new JLabel("性别:", JLabel.RIGHT)); modifyPanel.add(new JComboBox(new String[]{"男", "女"})); modifyPanel.add(new JLabel("年龄:", JLabel.RIGHT)); modifyPanel.add(new JTextField()); modifyPanel.add(new JLabel("专业:", JLabel.RIGHT)); modifyPanel.add(new JTextField()); modifyPanel.add(new JButton("修改")); modifyPanel.add(new JButton("取消")); modifyPanel.setVisible(false); // 创建删除学生信息界面 deletePanel = new JPanel(new BorderLayout()); deletePanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); deletePanel.add(new JLabel("请输入学号:", JLabel.LEFT), BorderLayout.NORTH); deletePanel.add(new JTextField(), BorderLayout.CENTER); deletePanel.add(new JButton("删除"), BorderLayout.EAST); deletePanel.setVisible(false); // 创建标题 titleLabel = new JLabel("欢迎使用学生信息管理系统", JLabel.CENTER); titleLabel.setFont(new Font("微软雅黑", Font.BOLD, 24)); // 将各个界面添加到窗口中 getContentPane().add(titleLabel, BorderLayout.NORTH); getContentPane().add(loginPanel, BorderLayout.CENTER); getContentPane().add(mainPanel, BorderLayout.SOUTH); getContentPane().add(addPanel, BorderLayout.CENTER); getContentPane().add(queryPanel, BorderLayout.CENTER); getContentPane().add(modifyPanel, BorderLayout.CENTER); getContentPane().add(deletePanel, BorderLayout.CENTER); // 设置窗口可见 setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == loginButton) { // 登录 String username = usernameField.getText(); String password = new String(passwordField.getPassword()); if (username.equals("admin") && password.equals("123456")) { loginPanel.setVisible(false); mainPanel.setVisible(true); } else { JOptionPane.showMessageDialog(this, "用户名或密码错误!", "错误", JOptionPane.ERROR_MESSAGE); } } else if (e.getSource() == addButton) { // 添加学生信息 mainPanel.setVisible(false); addPanel.setVisible(true); } else if (e.getSource() == queryButton) { // 查询学生信息 mainPanel.setVisible(false); queryPanel.setVisible(true); } else if (e.getSource() == modifyButton) { // 修改学生信息 mainPanel.setVisible(false); modifyPanel.setVisible(true); } else if (e.getSource() == deleteButton) { // 删除学生信息 mainPanel.setVisible(false); deletePanel.setVisible(true); } } public static void main(String[] args) { new StudentInfoManagementSystem(); } } ``` 请注意,上述代码只是一个简单的示例,实际上还需要完成各个功能模块的业务逻辑。同时,为了更好地组织代码,建议将各个功能模块的代码分别封装在不同的类中,并使用MVC模式进行设计

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值