📄 countrytest.java
字号:
*/
public void browseButton_mouseClicked(MouseEvent e) {
TabbedPane.setSelectedIndex(3);
}
/**
* 工具栏按钮
* 排序按钮的事件
* @param e MouseEvent
*/
public void sortButton_mouseClicked(MouseEvent e) {
TabbedPane.setSelectedIndex(2);
}
/**
* 操作菜单项
* 排序菜单的事件
* @param e MouseEvent
*/
public void sortMenuItem_mouseClicked(MouseEvent e) {
TabbedPane.setSelectedIndex(2);
}
/**
* 添加面板的按钮
* 添加按钮的事件
* @param e
*/
public void addCountryButton_mouseClicked(MouseEvent e) {
if(addNameTextField.getText().trim().equals("")){
Util.showMessageDialog("错误提示","请输入姓名",null);
addNameTextField.setFocusable(true);
return;
}
if(addAreaTextField.getText().trim().equals("")){
Util.showMessageDialog("错误提示","请输入手机",null);
addAreaTextField.setFocusable(true);
return;
}
if(addPopuTextField.getText().trim().equals("")){
Util.showMessageDialog("错误提示","请输入籍贯",null);
addPopuTextField.setFocusable(true);
return;
}
country = new Country(addNameTextField.getText().trim(),addAreaTextField.getText().trim(),addPopuTextField.getText().trim());
countryList.add(country);
//更新显示
dataChangeActionListener();
showMsgInStatus("记录: "+addNameTextField.getText()+"添加成功!");
addNameTextField.setText("");
addAreaTextField.setText("");
addPopuTextField.setText("");
JOptionPane.showMessageDialog(null,"添加成功","系统提示",1,null);
}
/**
* 查询面板的按钮
* 查询按钮的事件
* @param e
*/
public void searchCountryButton_mouseClicked(MouseEvent e) {
if(searchNameTextField.getText().trim().equals("")){
Util.showMessageDialog("错误提示","请输入姓名",null);
searchNameTextField.setFocusable(true);
return;
}
int flag = 0;
it = countryList.iterator();
while(it.hasNext()){
country = (Country)it.next();
if(country.getName().equals(searchNameTextField.getText().trim())){
JOptionPane.showMessageDialog(null,
" 姓名:"+country.getName()+" " +
" 手机:"+country.getArea()+" " +
" 籍贯:"+country.getPopulation(),
"系统提示",1,null);
flag = 1;
break;
}
}
if(flag==0){
JOptionPane.showMessageDialog(null,"找不到和 '"+searchNameTextField.getText()+"' 相匹配的名字","系统提示",1,null);
//更新显示
showMsgInStatus("找不到相符合的记录!");
}
}
/**
* 删除面板的按钮
* 删除按钮的事件
* @param e
*/
public void delCountryButton_mouseClicked(MouseEvent e) {
if(deleteNameTextField1.getText().trim().equals("")){
JOptionPane.showMessageDialog(null,"没有记录可以删除!","系统提示",1,null);
showMsgInStatus("无任何记录!");
deleteNameTextField1.setFocusable(true);
return;
}
int flag = 0;
it = countryList.iterator();
while(it.hasNext()){
country = (Country)it.next();
if(country.getName().equals(deleteNameTextField1.getText().trim())){
countryList.remove(country);
//更新显示
dataChangeActionListener();
showMsgInStatus("记录: "+deleteNameTextField1.getText()+"删除成功!");
deleteNameTextField1.setText("");
deleteAreaTextField.setText("");
deletePopuTextField.setText("");
browseNameTextField.setText("");
browseAreaTextField.setText("");
browsePopuTextField.setText("");
if(countryList.size()>0){
displayList.setSelectedIndex(2);
}
flag = 1;
JOptionPane.showMessageDialog(null,"删除成功!","系统提示",1,null);
break;
}
}
if(flag==0){
JOptionPane.showMessageDialog(null,"找不到和'"+deleteNameTextField1.getText()+"' 相匹配的名字!","系统提示",1,null);
showMsgInStatus("找不到相符合的记录!");
}
}
/**
* 排序面板的按钮
* 排序按钮的事件
* @param e
*/
public void sortCountryButton_mouseClicked(MouseEvent e) {
if(sortByNameRadioButton.isSelected()){
Comparator comp = new SortByName(true);
if(isAscendCheckBox.isSelected()){
comp = new SortByName(true);
}
else{
comp = new SortByName(false);
}
Collections.sort(countryList,comp);
dataChangeActionListener();
}
if(sortByAreaRadioButton.isSelected()){
Comparator comp;
if(isAscendCheckBox.isSelected()){
comp = new SortByArea(true);
}
else{
comp = new SortByArea(false);
}
comp = new SortByArea(true);
Collections.sort(countryList,comp);
dataChangeActionListener();
}
if(sortByPopuRadioButton.isSelected()){
Comparator comp;
if(isAscendCheckBox.isSelected()){
comp = new SortByPoPulation(true);
}
else{
comp = new SortByPoPulation(false);
}
comp = new SortByPoPulation(true);
Collections.sort(countryList,comp);
dataChangeActionListener();
}
}
/**
* 浏览面板的按钮
* 第一条按钮的事件
* @param e
*/
public void firstRecordButton_mouseClicked(MouseEvent e) {
if(countryList.size()>0){
country =(Country)countryList.get(0);
browseNameTextField.setText(country.getName());
browseAreaTextField.setText(country.getArea());
browsePopuTextField.setText(country.getPopulation());
displayList.setSelectedIndex(2);
}
else{
JOptionPane.showMessageDialog(null,"没有任何记录!","系统提示",1,null);
showMsgInStatus("无任何记录!");
}
}
/**'
* 浏览面板的按钮
* 上一条按钮的事件
* @param e
*/
public void priorRecordButton_mouseClicked(MouseEvent e) {
if(countryList.size()>0){
if(pos>=0){
if(pos==countryList.size()){
if(countryList.size()>1){
pos=countryList.size()-2;
}
else{
pos=countryList.size()-1;
}
}
country =(Country)countryList.get(pos);
browseNameTextField.setText(country.getName());
browseAreaTextField.setText(country.getArea());
browsePopuTextField.setText(country.getPopulation());
displayList.setSelectedIndex(pos+2);
pos--;
}
else{
Util.showMessageDialog("系统提示","已经到了记录首条!",null);
showMsgInStatus("已经到了记录首条!");
}
}
else{
JOptionPane.showMessageDialog(null,"没有任何记录!","系统提示",1,null);
showMsgInStatus("无任何记录!");
}
}
/**
* 浏览面板的按钮
* 下一条按钮的事件
* @param e
*/
public void nextRecordButton_mouseClicked(MouseEvent e) {
if(countryList.size()>0){
if(pos<countryList.size()){
if(pos==-1){
if(countryList.size()>1){
pos = 1;
}
else{
pos = 0;
}
}
country =(Country)countryList.get(pos);
browseNameTextField.setText(country.getName());
browseAreaTextField.setText(country.getArea());
browsePopuTextField.setText(country.getPopulation());
displayList.setSelectedIndex(pos+2);
pos++;
}
else{
Util.showMessageDialog("系统提示","已经到了记录末条!",null);
}
}
else{
JOptionPane.showMessageDialog(null,"没有任何记录!","系统提示",1,null);
showMsgInStatus("无任何记录!");
}
}
/**
* 浏览面板的按钮
* 最后一条按钮的事件
* @param e
*/
public void lastRecordButton_mouseClicked(MouseEvent e) {
if(countryList.size()>0){
country =(Country)countryList.get(countryList.size()-1);
browseNameTextField.setText(country.getName());
browseAreaTextField.setText(country.getArea());
browsePopuTextField.setText(country.getPopulation());
displayList.setSelectedIndex(countryList.size()+1);
}
else{
JOptionPane.showMessageDialog(null,"没有任何记录!","系统提示",1,null);
showMsgInStatus("无任何记录!");
}
}
/**
* 从文件中读取内容并赋给数组
* @param file
*/
private void readFiletoArrayList(File file){
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK"));
String data = null;
String[] resut;
StringBuffer buffer = new StringBuffer();
Country myCountry;
countryList.clear();
displayList.removeAll();
dataChangeActionListener();
while((data = reader.readLine())!=null){
resut = Util.parseCSVLine(data);
try{
myCountry = new Country(resut[0],resut[1],resut[2]);
countryList.add(myCountry);
}catch(java.lang.IndexOutOfBoundsException iout){
Util.showMessageDialog("出错提示","文件结构错误,不能正常读取!",null);
showMsgInStatus(file.getName()+"文件结构错误,不能正常读取!");
reader.close();
return;
}
}
if(countryList.size()>0){
index = 2;
displayList.setSelectedIndex(index);
saveFileMenuItem.setEnabled(true);
closeFileMenuItem.setEnabled(true);
}
//关闭输入流
if(reader!=null){
reader.close();
//更新显示
dataChangeActionListener();
showMsgInStatus(file.getName()+"文件已打开");
}
}catch(IOException e){
Util.showMessageDialog("出错提示","打开文件错误!",null);
showMsgInStatus(file.getName()+"打开文件错误!");
throw new RuntimeException(e);
}
}
/**
* 打开文件的事件监听器
*/
class openFileActionListener implements ActionListener{
public void actionPerformed(ActionEvent e){
JFileChooser jc = new JFileChooser();
int rVal = jc.showOpenDialog(CountryTest.this);
if(rVal == JFileChooser.APPROVE_OPTION){
File openFileName;
File dir = jc.getCurrentDirectory();
File file = jc.getSelectedFile();
openFileName = new File(dir,file.getName());
readFiletoArrayList(openFileName);
}
}
}
/**
* 保存文件的事件监听器
*/
class saveFileActionListener implements ActionListener{
public void actionPerformed(ActionEvent event){
int sel = JOptionPane.showConfirmDialog(null,
"需要保存数据吗?",
"保存提示",
JOptionPane.YES_NO_OPTION);
if(sel == JOptionPane.YES_OPTION){
try{
File saveFileName = null;
JFileChooser jc = new JFileChooser();
int rVal = jc.showSaveDialog(CountryTest.this);
if(rVal == JFileChooser.APPROVE_OPTION){
File dir = jc.getCurrentDirectory();
File file = jc.getSelectedFile();
saveFileName = new File(dir,file.getName());
}
PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(saveFileName),"GBK"));
String data = null;
String[] resut;
Country myCountry;
String result;
for(int i=0;i<countryList.size();i++){
myCountry = (Country)countryList.get(i);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -