📄 popedomjpanel.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 + -