【Java开源代码栏目提醒】:网学会员鉴于大家对Java开源代码十分关注,论文会员在此为大家搜集整理了“CriterionSetPanel.java”一文,供大家参考学习
package com.mwq.frame.treatement;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Iterator;
import java.util.Set;
import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.ListSelectionModel;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;
import com.mwq.hibernate.Dao;
import com.mwq.hibernate.HibernateSessionFactory;
import com.mwq.hibernate.mapping.TbAccountItem;
import com.mwq.hibernate.mapping.TbReckoning;
import com.mwq.hibernate.mapping.TbReckoningInfo;
import com.mwq.mwing.MTable;
public class CriterionSetPanel extends JPanel {
private JTextArea textArea;
private JTable leftTable;
private JTable rightTable;
private final Vector<String> leftTableColumnV = new Vector<String>();
private final Vector<Vector<String>> leftTableValueV = new Vector<Vector<String>>();
private final DefaultTableModel leftTableModel = new DefaultTableModel(
leftTableValueV, leftTableColumnV);
private final Vector<String> rightTableColumnV = new Vector<String>();
private final Vector<Vector<String>> rightTableValueV = new Vector<Vector<String>>();
private final DefaultTableModel rightTableModel = new DefaultTableModel(
rightTableValueV, rightTableColumnV);
private final Vector<TbReckoning> reckoningV = new Vector<TbReckoning>();
private final Dimension dimension = Toolkit.getDefaultToolkit()
.getScreenSize();
private final int width = dimension.width;
private final int height = dimension.height;
private final Dao dao = Dao.getInstance();
private String reckoningExplain = "";
private int lastSelectedRow = -1;
private int needSaveRow = -1;
/**
* Create the panel
*/
public CriterionSetPanel() {
super();
setLayout(new BorderLayout());
final JPanel buttonPanel = new JPanel();
buttonPanel.setBackground(Color.WHITE);
add(buttonPanel, BorderLayout.NORTH);
final JButton addSetButton = new JButton();
addSetButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (needSaveRow == -1) {// 没有需要保存的账套
CreateCriterionSetDialog createCriterionSet = new CreateCriterionSetDialog();
createCriterionSet.setBounds((width - 350) / 2,
(height - 250) / 2, 350, 250);
createCriterionSet.setVisible(true);// 弹出新建账套对话框
if (createCriterionSet.isSubmit()) {// 单击“确定”按钮
String name = createCriterionSet.getNameTextField()
.getText();// 获得账套名称
String explain = createCriterionSet
.getExplainTextArea().getText();// 获得账套说明
needSaveRow = leftTableValueV.size();// 将新建账套设置为需要保存的账套
Vector<String> newCriterionSetV = new Vector<String>();// 创建代表账套表格行的向量对象
newCriterionSetV.add(needSaveRow + 1 + "");// 添加账套序号
newCriterionSetV.add(name);// 添加账套名称
leftTableModel.addRow(newCriterionSetV);// 将向量对象添加到左侧的账套表格中
leftTable.setRowSelectionInterval(needSaveRow,
needSaveRow);// 设置新建账套为选中行
textArea.setText(explain);// 设置账套说明
TbReckoning reckoning = new TbReckoning();// 创建账套对象
reckoning.setName(name);// 设置账套名称
reckoning.setExplain(explain);// 设置账套说明
reckoningV.add(reckoning);// 将账套对象添加到向量中
refreshItemAllRowValueV(needSaveRow);// 同步刷新右侧的账套项目表格
}
} else {// 有需要保存的账套,弹出提示保存对话框
JOptionPane.showMessageDialog(null, "请先保存账套: "
+ leftTable.getValueAt(needSaveRow, 1), "友情提示",
JOptionPane.INFORMATION_MESSAGE);
}
}
});
addSetButton.setText("新建账套");
buttonPanel.add(addSetButton);
final JButton updateSetButton = new JButton();
updateSetButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int selectedRow = leftTable.getSelectedRow();
if (needSaveRow == -1 || needSaveRow == selectedRow) {
if (selectedRow == -1) {
JOptionPane.showMessageDialog(null, "现在已经没有任何账套信息!",
"友情提示", JOptionPane.INFORMATION_MESSAGE);
} else {
CreateCriterionSetDialog updateCriterionSet = new CreateCriterionSetDialog();
updateCriterionSet.setTitle("账套维护");
updateCriterionSet.getNameTextField().setText(
leftTableValueV.get(selectedRow).get(1));
updateCriterionSet.getExplainTextArea().setText(
textArea.getText());
updateCriterionSet.setBounds((width - 350) / 2,
(height - 250) / 2, 350, 250);
updateCriterionSet.setVisible(true);
if (updateCriterionSet.isSubmit()) {
needSaveRow = selectedRow;
Vector<String> updateCriterionSetV = leftTableValueV
.get(needSaveRow);
updateCriterionSetV.set(1, updateCriterionSet
.getNameTextField().getText().toString());
leftTableModel.setDataVector(leftTableValueV,
leftTableColumnV);
textArea.setText(updateCriterionSet
.getExplainTextArea().getText());
leftTable.setRowSelectionInterval(needSaveRow,
needSaveRow);
}
}
} else {
JOptionPane.showMessageDialog(null, "请先保存账套: "
+ leftTable.getValueAt(needSaveRow, 1), "友情提示",
JOptionPane.INFORMATION_MESSAGE);
}
}
});
updateSetButton.setText("修改账套");
buttonPanel.add(updateSetButton);
final JButton delSetButton = new JButton();
delSetButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int leftSelectedRow = leftTable.getSelectedRow();
if (leftSelectedRow == -1) {
JOptionPane.showMessageDialog(null, "现在已经没有任何账套信息!",
"友情提示", JOptionPane.INFORMATION_MESSAGE);
} else {
int i = JOptionPane.showConfirmDialog(null, "确定删除账套:"
+ leftTable.getValueAt(leftSelectedRow, 1), "友情提示",
JOptionPane.YES_NO_OPTION);
if (i == 0) {
if (needSaveRow == -1 || leftSelectedRow == needSaveRow) {
needSaveRow = -1;
leftTableValueV.remove(leftSelectedRow);
dao.deleteObject(reckoningV.get(leftSelectedRow));
reckoningV.remov
上一篇:
Criterion.java
下一篇:
哈弗F7 VS名爵HS,谁更懂得年轻人的心?