⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 popedomjpanel.java

📁 适合学生课程设计使用,这是我自己编写的一个系统.
💻 JAVA
字号:
package view.popedom;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.event.*;
import java.util.List;
import java.util.Iterator;
import java.util.Vector;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import bean.popedom;
import tools.help;
import persistence.popedomDAOImp;
/*
 * 此为权限模块
 */
/**
 * @author   Administrator
 */
public class popedomJpanel extends JPanel implements ActionListener,MouseListener,PropertyChangeListener {
	private JPanel panelOne;					//面板第一部分,用于显示、修改权限具体信息
	private JPanel panelOne_1;					
	private JLabel labelName;
	private JTextField tfName;
	private JLabel labelTypeNum;
	private JTextField tfTypeNum;
	private JPanel panelOne_2;
	private JLabel labelDescription;
	private JTextField tfDescription;
	
	private JPanel panelTwo;					//面板第二部分,用与显示当前有多少种权限
	private JScrollPane sp;
	private DefaultListModel dlm;
	private JList list;
	private JPanel panelTwo_1;
	private JButton buttonAdd;
	private JButton buttonModify;
	private JButton buttonDelete;
	private JButton buttonGo;
	
	private JPanel panelThree;					//面板第三部分
	private JButton buttonBack;					//返回按钮
	
	private GridBagConstraints cons;

	private popedomDAOImp pDAOImp = new popedomDAOImp();
	private Vector<popedom> vpop = new Vector<popedom>();
	private int row = 0;
	
	public popedomJpanel() {					//权限面板初始化
		setOne();								//调用第一部分面板初始化
		setTwo();								//调用第二部分面板初始化
		setThree();								//调用第三部分面板初始化
		setThisJPanel();						//调用权限面板初始化
		init();									//调用数据初始化
	}
	
	public void init() {						//视图中数据初始化
		pDAOImp.addPropertyChangeListener(this);	//在视图中添加模型数据更新事件
		pDAOImp.getPopedomRows();				//从数据库中获得权限信息
		vpop = pDAOImp.getVpop();				//视图从模型中取得数据
		Iterator iter = vpop.iterator();
		while(iter.hasNext()) {					//在视图的List中显示权限集
			popedom pop = (popedom)iter.next();
			dlm.addElement(pop.getName());
			list.setModel(dlm);
			//System.out.println(pop.getName());
		}	
	}
	
	public void propertyChange(PropertyChangeEvent e) {			//MVC模式,模型数据更新后通知视图更新数据
		if((e.getSource() == pDAOImp) && (e.getPropertyName().equals("popedom"))) {
			popedom temp = pDAOImp.getPopedom();
			this.tfName.setText(temp.getName());
			this.tfTypeNum.setText(String.valueOf(temp.getTypeNum()));
			this.tfDescription.setText(temp.getDescription());
		} else if((e.getSource() == pDAOImp) && (e.getPropertyName().equals("Vpopedom"))) {
			dlm.removeAllElements();
			list.setModel(dlm);
			this.vpop = pDAOImp.getVpop();
			Iterator iter = vpop.iterator();
			while(iter.hasNext()) {
				popedom pop = (popedom)iter.next();
				dlm.addElement(pop.getName());
				list.setModel(dlm);
			}
		}
	}
	
	public void setOne() {								//第一部分面板初始化
		panelOne = new JPanel();
		panelOne.setLayout(new GridLayout(2,1));
		panelOne_1 = new JPanel();
		FlowLayout fl = new FlowLayout();
		fl.setAlignment(FlowLayout.LEFT);
		panelOne_1.setLayout(fl);
		labelName = new JLabel("名称:");
		tfName = new JTextField(10);
		tfName.addActionListener(this);
		tfName.setEditable(false);
		labelTypeNum = new JLabel("代表数:");
		tfTypeNum = new JTextField(5);
		tfTypeNum.setToolTipText("请输入一个素数");
		tfTypeNum.addActionListener(this);
		tfTypeNum.setEditable(false);
		panelOne_1.add(labelName);
		panelOne_1.add(tfName);
		panelOne_1.add(labelTypeNum);
		panelOne_1.add(tfTypeNum);
		panelOne_2 = new JPanel();
		panelOne_2.setLayout(fl);
		labelDescription = new JLabel("描述:");
		tfDescription = new JTextField(20); 
		tfDescription.addActionListener(this);
		tfDescription.setEditable(false);
		panelOne_2.add(labelDescription);
		panelOne_2.add(tfDescription);
		panelOne.add(panelOne_1);
		panelOne.add(panelOne_2);
	}
	
	public void setTwo() {								//第二部分面板初始化
		panelTwo = new JPanel();
		panelTwo.setLayout(new GridLayout(1,2));
		dlm = new DefaultListModel();
		list = new JList();
		list.setVisibleRowCount(3);
		list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		list.addMouseListener(this);
		sp = new JScrollPane(list);
		panelTwo_1 = new JPanel();
		panelTwo_1.setLayout(new GridLayout(4,1,20,20));
		buttonAdd = new JButton("添加");
		buttonAdd.addActionListener(this);
		buttonModify = new JButton("修改");
		buttonModify.addActionListener(this);
		buttonDelete = new JButton("删除");
		buttonDelete.addActionListener(this);
		buttonGo = new JButton("提交");
		buttonGo.addActionListener(this);
		buttonGo.setVisible(false);
		panelTwo_1.add(buttonAdd);
		panelTwo_1.add(buttonModify);
		panelTwo_1.add(buttonDelete);
		panelTwo_1.add(buttonGo);
		panelTwo.add(sp);
		panelTwo.add(panelTwo_1);
	}
	
	public void setThree() {							//第三部分面板初始化
		panelThree = new JPanel();
		FlowLayout fl = new FlowLayout();
		fl.setAlignment(FlowLayout.RIGHT);
		panelThree.setLayout(fl);
		buttonBack = new JButton("返回");
		buttonBack.addActionListener(this);
		panelThree.add(buttonBack);
	}
	
	public void setThisJPanel() {						//权限面板初始化
		this.setSize(300,300);
		GridBagLayout gridBag = new GridBagLayout();
		this.setLayout(gridBag);
		cons = new GridBagConstraints(0,0,1,10,0,0,GridBagConstraints.EAST,GridBagConstraints.HORIZONTAL,new Insets(2,2,2,2),0,0);
		gridBag.setConstraints(panelOne,cons);
		
		cons = new GridBagConstraints(0,10,1,10,1,1,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(2,2,2,2),0,0);
		gridBag.setConstraints(panelTwo,cons);
		
		cons = new GridBagConstraints(0,20,10,10,1,1,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(2,2,2,2),0,0);
		gridBag.setConstraints(panelThree,cons);
		
		this.add(panelOne);
		this.add(panelTwo);
		this.add(panelThree);
	}
	
	public void actionPerformed(ActionEvent e) {			//事件处理
		if(e.getSource() == buttonBack) {
			this.setVisible(false);
		} else if(e.getSource() == tfName) {
			tfTypeNum.requestFocus(true);
		} else if(e.getSource() == tfTypeNum) {
			tfDescription.requestFocus(true);
		} else if(e.getSource() == tfDescription) {
			tfName.requestFocus(true);
		} else if(e.getSource() == buttonAdd) {
			add();											//调用添加方法
		} else if(e.getSource() == buttonModify) {
			mod();											//调用修改方法
		} else if(e.getSource() == buttonDelete) {
			del();											//调用删除方法
		} else if(e.getSource() == buttonGo) {
			Go();											//调用执行方法
		}
	}
	
	public void add() {							//添加方法
		tfName.setEditable(true);
		tfTypeNum.setEditable(true);
		tfDescription.setEditable(true);
		tfName.setText("");
		tfTypeNum.setText("");
		tfDescription.setText("");
		buttonGo.setVisible(true);
		tfName.requestFocus(true);
		buttonModify.setEnabled(false);
		buttonAdd.setEnabled(false);
		row = vpop.size() + 1;
	}
	
	public void mod() {							//修改方法
		tfName.setEditable(true);
		tfTypeNum.setEditable(true);
		tfDescription.setEditable(true);
		buttonGo.setVisible(true);
		tfName.requestFocus(true);
		buttonAdd.setEnabled(false);
		buttonModify.setEnabled(false);
		row = this.list.getSelectedIndex();
	}
	
	public void del() {							//删除方法
		if(!buttonAdd.isEnabled() || !buttonModify.isEnabled()) {
			tfName.setText("");
			tfTypeNum.setText("");
			tfDescription.setText("");
			tfName.requestFocus(true);
		} else {
			tfName.setText("");
			tfTypeNum.setText("");
			tfDescription.setText("");
			pDAOImp.delPopedomRows(this.vpop.elementAt(this.list.getSelectedIndex()));
		}
	}
	
	public void Go() {							//执行方法
		if(row > vpop.size()) {
			if(tfName.getText().equals("") || tfTypeNum.getText().equals("")) {
				tfName.requestFocus(true);
			} else {
				popedom temp = new popedom();
				temp.setName(tfName.getText().trim());
				temp.setTypeNum(Integer.parseInt(tfTypeNum.getText().trim()));
				temp.setDescription(tfDescription.getText().trim());
				pDAOImp.addPopedomRows(temp);
			}
		} else {
			if(tfName.getText().equals("") || tfTypeNum.getText().equals("")) {
				tfName.requestFocus(true);
			} else {
				popedom temp = vpop.elementAt(row);
				temp.setName(tfName.getText().trim());
				temp.setTypeNum(Integer.parseInt(tfTypeNum.getText().trim()));
				temp.setDescription(tfDescription.getText().trim());
				pDAOImp.addPopedomRows(temp);
			}
		}
		tfName.setEditable(false);
		tfTypeNum.setEditable(false);
		tfDescription.setEditable(false);
		buttonAdd.setEnabled(true);
		buttonModify.setEnabled(true);
		buttonGo.setVisible(false);
			
	}

	public void mouseClicked(MouseEvent e) {			//鼠标单击事件
		if(e.getSource() == list) {
			int index = list.getSelectedIndex();
			System.out.println(index);
			popedom pop = vpop.get(index);
			tfName.setText(pop.getName());
			tfTypeNum.setText(String.valueOf(pop.getTypeNum()));
			tfDescription.setText(pop.getDescription());	
		}
	}
	
	
	
	public static void main(String[] args) {
		JFrame f = new JFrame("测试用");
		f.getContentPane().add(new popedomJpanel());
		f.setSize(400,400);
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	public void mousePressed(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void mouseReleased(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void mouseEntered(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void mouseExited(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -