欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實(shí)現(xiàn)花卉管理系統(tǒng)

 更新時(shí)間:2021年06月24日 11:09:18   作者:華墨1024  
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)花卉管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

這是一個(gè)稍微綜合一點(diǎn)的小小小項(xiàng)目,算是給Java的學(xué)習(xí)畫(huà)一個(gè)小結(jié)點(diǎn)。

直接開(kāi)門(mén)見(jiàn)山來(lái)看設(shè)計(jì)吧。

1.上傳的這個(gè)版本是通過(guò)文本存儲(chǔ)數(shù)據(jù)(PS:別問(wèn)我為啥不用數(shù)據(jù)庫(kù),因?yàn)楫?dāng)時(shí)事情多.....懶得實(shí)現(xiàn))

2.這個(gè)版本有歡迎界面、增加花卉界面、刪除花卉界面、修改花卉信息界面、查詢(xún)花卉界面。

3.對(duì)文本的增刪查改過(guò)程全部定義在獨(dú)立的類(lèi)的方法中,通過(guò)對(duì)類(lèi)中方法的調(diào)用來(lái)實(shí)現(xiàn)。

以下是代碼的文件表:

在這個(gè)程序中的絕大多數(shù)提示我用的都是具有鮮明時(shí)代特色的表情包,哈哈哈哈哈哈

先讓你們小小欣賞下(哈哈哈哈哈,前方小高能,非戰(zhàn)斗人員請(qǐng)盡快撤退!?。?/p>

1. 當(dāng)有未填信息時(shí)

2. 當(dāng)編號(hào)中包含非數(shù)字符時(shí)(單價(jià)非數(shù)字時(shí)等提示圖片一樣)

3.當(dāng)輸入正確時(shí)

主函數(shù)代碼(Test.java):

public class Test {
      /**
       * @param args
       */
      public static void main(String[] args) {
            Enter enter = new Enter();
            //AddFlower add = new AddFlower();
            //SearchFlower s = new SearchFlower();
            //DeleteFlower d = new DeleteFlower();
            //ModifyFlower m = new ModifyFlower();
      }
}

歡迎界面(Enter.java):

import javax.swing.*;
import javax.swing.event.AncestorListener;
import java.awt.*;
import java.awt.event.*;
 
 
public class Enter extends JFrame implements ActionListener
{
 JLabel PhotoLabel = new JLabel(new ImageIcon("Flower.jpg"));
 JButton loginbt;//登錄進(jìn)入按鈕
 JLabel InformationJLabel;//歡迎語(yǔ)
 
 public Enter()
 {
  this.setSize(500, 500);
  this.setTitle("花卉信息管理系統(tǒng)");
  this.setLocation(700,200);
  this.setVisible(true);
  this.setLayout(null);
  //設(shè)置照片為背景
  String Background = "Flower.jpg";
  ImageIcon background = new ImageIcon(Background);
  JLabel label = new JLabel(background);
  label.setBounds(0, 0,this.getWidth() , this.getHeight());
  JPanel imagePanel = (JPanel) this.getContentPane();
  imagePanel.setOpaque(false);
  this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.init();
 }
 
 private void init()
 {
  loginbt=new JButton("登錄");
  loginbt.setSize(100,50);
  loginbt.setLocation(180, 330);
  loginbt.addActionListener(this);
  this.add(loginbt);
  InformationJLabel = new JLabel("歡迎使用!");
  InformationJLabel.setFont(new Font("宋體", Font.BOLD | Font.ITALIC, 50));
  InformationJLabel.setSize(300, 50);
  InformationJLabel.setLocation(120,150);
  this.add(InformationJLabel);
  
 }
 
 @Override
 public void actionPerformed(ActionEvent e) {
 AddFlower addflower = new AddFlower(); 
  
 }
 
}

增加花卉界面(AddFlower.java): 

import javax.swing.*;
import javax.swing.event.AncestorListener;
 
import java.awt.Font;
import java.awt.event.*;
 
public class AddFlower extends JFrame implements ActionListener
{
 JLabel tableLabel;
 
 JLabel NumLabel;//編號(hào)
 JLabel NameLabel;//名稱(chēng)
 JLabel PriceLabel;//單價(jià)
 JLabel UnitLabel;//計(jì)價(jià)單位
 
 JTextField NumText;//編號(hào)文本框
 JTextField NameText;//名稱(chēng)文本框
 JTextField PriceText;//單價(jià)文本框
 JTextField UnitText;//計(jì)價(jià)單位文本框
 
 JButton[] rbts;//按鈕數(shù)組對(duì)象
 ButtonGroup btGroup;//按鈕組,從邏輯上來(lái)涵蓋所有的單選按鈕
 JButton Addbt;//增加按鈕
 
 public AddFlower()
 {
  this.setSize(500, 500);
  this.setTitle("花卉信息管理系統(tǒng)");
  this.setLocation(700,200);
  this.setVisible(true);
  this.setLayout(null);
  this.init();
 }
 
 private void init()
 {
  //增刪查改功能入口按鈕
  btGroup=new ButtonGroup();
  rbts=new JButton[4];
  String[] strs = {"增加","刪除","搜索","修改"};
  for(int i = 0;i<strs.length;i++)
  {
   rbts[i]=new JButton(strs[i]);
   rbts[i].setSize(70, 30);
   rbts[i].setLocation(100*i+60, 30);
   btGroup.add(rbts[i]);//從邏輯上將單選按鈕添加到一個(gè)按鈕數(shù)組中
   this.add(rbts[i]);//從物理位置上將單選按鈕添加到窗體中
   rbts[i].addActionListener(this);
  }
  
  //編號(hào)
  NumLabel=new JLabel("編號(hào)");
  NumLabel.setFont(NumLabel.getFont().deriveFont(Font.BOLD, 18));
  NumLabel.setSize(90,30);
  NumLabel.setLocation(70, 110);
  this.add(NumLabel);
  NumText=new JTextField();
  NumText.setSize(180,30);
  NumText.setLocation(170, 110);
  this.add(NumText);
  
  //名稱(chēng)
  NameLabel=new JLabel("名稱(chēng)");
  NameLabel.setFont(NameLabel.getFont().deriveFont(Font.BOLD, 18));
  NameLabel.setSize(90,30);
  NameLabel.setLocation(70, 170);
  this.add(NameLabel);
  NameText=new JTextField();
  NameText.setSize(180,30);
  NameText.setLocation(170, 170);
  this.add(NameText);
  
  //單價(jià)
  PriceLabel=new JLabel("單價(jià)");
  PriceLabel.setFont(PriceLabel.getFont().deriveFont(Font.BOLD, 18));
  PriceLabel.setSize(90,30);
  PriceLabel.setLocation(70, 230);
  this.add(PriceLabel);
  PriceText=new JTextField();
  PriceText.setSize(180,30);
  PriceText.setLocation(170, 230);
  this.add(PriceText);
 
  //計(jì)價(jià)單位
  UnitLabel=new JLabel("計(jì)價(jià)單位");
  UnitLabel.setFont(UnitLabel.getFont().deriveFont(Font.BOLD, 18));
  UnitLabel.setSize(90,30);
  UnitLabel.setLocation(70, 290);
  this.add(UnitLabel);
  UnitText=new JTextField();
  UnitText.setSize(180,30);
  UnitText.setLocation(170, 290);
  this.add(UnitText);
  
  //添加按鈕
  Addbt=new JButton("添加"); 
  Addbt.setSize(90,50);
  Addbt.setLocation(200, 360);
  Addbt.addActionListener(
    new ActionListener()
    {
     public void actionPerformed(ActionEvent e)
     {
      
       if(!checkIsNull())
           {
         final ImageIcon icon3 = new ImageIcon("question.png");
        JOptionPane.showMessageDialog(null,"有未填信息?", "提示", JOptionPane.INFORMATION_MESSAGE, icon3);
           }else
           {
            if(!checkInput().equals(""))
            {
             final ImageIcon icon2 = new ImageIcon("NotOk.png");
          JOptionPane.showMessageDialog(null,checkInput(), "提示", JOptionPane.INFORMATION_MESSAGE, icon2);
            }else
            {
             FlowerDAO dao = new FlowerDAO();
             //引用添加花朵信息的方法
             StringBuffer FloInfo=new StringBuffer();
             FloInfo.append(NumText.getText().trim()+",");
             FloInfo.append(NameText.getText().trim()+",");
             FloInfo.append(PriceText.getText().trim()+",");
             FloInfo.append(UnitText.getText().trim());
           // dao.AddFlower(FloInfo);
             if(dao.AddFlower(FloInfo.toString()))
         {
              final ImageIcon icon = new ImageIcon("Ok2.png");
          JOptionPane.showMessageDialog(null,"添加成功", "提示", JOptionPane.INFORMATION_MESSAGE, icon);
          NumText.setText("");
          NameText.setText("");
          PriceText.setText("");
          UnitText.setText("");
         }
         else
         {
          final ImageIcon icon1 = new ImageIcon("NotOk2.png");
          JOptionPane.showMessageDialog(null,"信息重復(fù)", "提示", JOptionPane.INFORMATION_MESSAGE, icon1);
         }
            }
           }
     }
    }
  );
  this.add(Addbt);
 }
 @Override
 public void actionPerformed(ActionEvent e) {
   String buttonName = e.getActionCommand();
      if(buttonName.equals("增加")){
       System.out.println("已處在增加界面上");
      }else if(buttonName.equals("刪除")){
       DeleteFlower deleteflower = new DeleteFlower();
      }else if(buttonName.equals("搜索")){
       SearchFlower searchflower = new SearchFlower();
      }else{
       ModifyFlower modifyflower = new ModifyFlower();
      }
     
 }
 
 private boolean checkIsNull() 
 {
  boolean flag=true;
  if(NumText.getText().trim().equals(""))
  {
   flag = false;
  }else if(NameText.getText().trim().equals(""))
  {
   flag=false;
  }else if(PriceText.getText().trim().equals(""))
  {
   flag=false;
  }else if(UnitText.getText().trim().equals(""))
  {
   flag=false;
  }
  return flag;
 }
 
 private Object checkInput() 
 { 
  String result="";
  String result1="";
   for(int i=0;i<NumText.getText().trim().length();i++)
   {
    char ch=NumText.getText().trim().charAt(i);
    if((ch<'0')||(ch>'9'))
    {
     result="編號(hào)中包含非數(shù)字字符";
     break;
    }
   }
   for(int i=0;i<PriceText.getText().trim().length();i++)
   {
    char ch=PriceText.getText().trim().charAt(i);
    if((ch<'0')||(ch>'9'))
    {
     result1="單價(jià)中包含非數(shù)字字符";
     break;
    }
   }
  if(result=="編號(hào)中包含非數(shù)字字符" && result1=="")
  {
   return result;
  }else if(result1=="單價(jià)中包含非數(shù)字字符" && result=="")
  {
   return result1;
  }else if(result=="編號(hào)中包含非數(shù)字字符" && result1=="單價(jià)中包含非數(shù)字字符")
  {
   return "編號(hào)和單價(jià)中均包含非數(shù)字字符";
  }else
  {
   return "";
  }
  
 }
 
 
}

刪除花卉界面(DeleteFlower.java):

import javax.swing.*;
 
import java.awt.Font;
import java.awt.event.*;
import java.util.ArrayList;
 
public class DeleteFlower extends JFrame implements ActionListener
{
 JLabel tableLabel;//標(biāo)題
 JScrollPane tablePane;//滾動(dòng)視口
 JTable table;//花卉列表
 JLabel Labelnum;//刪除提示
 
 JTextField DeleteText;//刪除文本框
 JButton Deletebt;//刪除按鈕
 JButton[] rbts;//按鈕數(shù)組對(duì)象
 ButtonGroup btGroup;//按鈕組,從邏輯上來(lái)涵蓋所有的單選按鈕
 
 
 public DeleteFlower()
 {
  this.setLayout(null);
  this.setSize(700, 580);
  this.setTitle("花卉信息管理系統(tǒng)");
  this.setLocation(600,250);
  this.init();
  this.refreshTable();
  this.setVisible(true);
  new Thread().start();
 }
 private void init()
 {
  //增刪查改功能入口按鈕
  btGroup=new ButtonGroup();
  rbts=new JButton[4];
  String[] strs = {"增加","刪除","搜索","修改"};
  for(int i = 0;i<strs.length;i++)
  {
   rbts[i]=new JButton(strs[i]);
   rbts[i].setSize(70, 30);
   rbts[i].setLocation(150*i+80, 10);
   btGroup.add(rbts[i]);//從邏輯上將單選按鈕添加到一個(gè)按鈕數(shù)組中
   this.add(rbts[i]);//從物理位置上將單選按鈕添加到窗體中
   rbts[i].addActionListener(this);
  }
  
  Labelnum = new JLabel("編號(hào)");
  Labelnum.setFont(Labelnum.getFont().deriveFont(Font.BOLD, 16));
  Labelnum.setSize(100,30); 
  Labelnum.setLocation(100,70);
  this.add(Labelnum);
  
  DeleteText = new JTextField();
  DeleteText.setSize(180,30);
  DeleteText.setLocation(170, 70);
  this.add(DeleteText);
  
  Deletebt = new JButton("刪除");
  Deletebt.setSize(70, 30);
  Deletebt.setLocation(380, 70);
  Deletebt.addActionListener(new ActionListener()
  {
   @Override
   public void actionPerformed(ActionEvent e) {
    int str=JOptionPane.showConfirmDialog(null, "是否刪除?", "警告", JOptionPane.YES_NO_OPTION); 
    if(str==JOptionPane.YES_OPTION)
    {
     //System.out.println("進(jìn)入");
     if(checkIsNull()){
      if(FlowerDAO.DeleteFlower(DeleteText.getText().trim()))
      {
       final ImageIcon icon = new ImageIcon("Ok.png");
       JOptionPane.showMessageDialog(null,"刪除成功", "提示", JOptionPane.INFORMATION_MESSAGE, icon);
       DeleteText.setText("");
       refreshTable();
      }
      else
      {
       JOptionPane.showMessageDialog(null, "刪除失敗", "提示", JOptionPane.ERROR_MESSAGE);
      }
     }else{
       final ImageIcon icon1 = new ImageIcon("黑人問(wèn)號(hào)3.png");
       JOptionPane.showMessageDialog(null,"未輸入刪除信息", "提示", JOptionPane.INFORMATION_MESSAGE, icon1);
     }
    }else{
     ;
    }
     
   }
  }
     
  );
  this.add(Deletebt); 
  
  
 }
 
 private void refreshTable()
 {
  
  tableLabel = new JLabel("花卉列表"); 
  tableLabel.setBounds(300,105, 100, 50);
  tableLabel.setFont(new Font("宋體", Font.BOLD , 20));
  this.add(tableLabel);
  String[] columnNames = {"編號(hào)","名稱(chēng)","單價(jià)","計(jì)價(jià)單位"};
  FlowerDAO dao=new FlowerDAO();
  ArrayList<String> flos=dao.findAllFlowers();
  Object[][] objs=new Object[flos.size()][4];
  for(int i=0;i<flos.size();i++)
  {
   String[] strs1=flos.get(i).split(",");
   objs[i][0]=strs1[0];
   objs[i][1]=strs1[1];
   objs[i][2]=strs1[2];
   objs[i][3]=strs1[3];
   System.out.println(strs1[0]);
  }
  
  table=new JTable(objs,columnNames);
  table.setSize(380,150);
  tablePane = new JScrollPane(table);
  tablePane.setSize(660, 350);
  tablePane.setLocation(10, 150);
  table.getTableHeader().setReorderingAllowed(false);
  table.getTableHeader().setResizingAllowed(false);
  table.enable(false);
  
  this.add(tablePane);
 }
 
 public void run() {
  while (true) {
   //每隔1秒鐘更新JTable
   table.validate();
   table.updateUI();
   try {
    Thread.sleep(1000);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
  }
 }
 
 @Override
 public void actionPerformed(ActionEvent e) {
   String buttonName = e.getActionCommand();
       if(buttonName.equals("增加")){
        AddFlower addflower = new AddFlower(); 
       }else if(buttonName.equals("刪除")){
        System.out.println("已處在刪除界面上");
       }else if(buttonName.equals("搜索")){
        SearchFlower searchflower = new SearchFlower();
       }else{
        ModifyFlower modifyflower = new ModifyFlower();
       }
  
 }
 
 private boolean checkIsNull() 
 {
  boolean flag=true;
  if(DeleteText.getText().trim().equals(""))
  {
   flag = false;
  }
  return flag;
 }
 
 private Object checkInput() 
 { 
  String result="";
  String result1="";
   for(int i=0;i<DeleteText.getText().trim().length();i++)
   {
    char ch=DeleteText.getText().trim().charAt(i);
    if((ch<'0')||(ch>'9'))
    {
     result="編號(hào)中包含非數(shù)字字符";
     break;
    }else
    {
     result="";
     break;
    }
   }
   return result;
  
 }
 
 
}

搜索花卉界面(SearchFlower.java):

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
 
 
 
 
public class SearchFlower extends JFrame implements ActionListener
{
    
    JLabel tableLabel;//標(biāo)題
    JScrollPane tablePane;//滾動(dòng)視口
    JTable table;//花卉列表
    
    JLabel NumLabel;//編號(hào)標(biāo)題
    JLabel NameLabel;//名稱(chēng)標(biāo)題
    JLabel PriceLabel;//單價(jià)標(biāo)題
    JLabel UnitLabel;//計(jì)價(jià)單位標(biāo)題
    JPanel panel;
    JComboBox comboBox;//組合框
    JTextField SearchText;//搜索文本框
    JButton SearchButton;//搜索按鍵
    /*
    JTextField NumText;//編號(hào)文本框
    JTextField NameText;//名稱(chēng)文本框
    JTextField PriceText;//單價(jià)文本框
    JTextField UnitText;//計(jì)價(jià)單位文本框
    */
    JButton[] rbts;//按鈕數(shù)組對(duì)象
    ButtonGroup btGroup;//按鈕組,從邏輯上來(lái)涵蓋所有的單選按鈕
    
    public SearchFlower()
    {
        this.setLayout(null);
        this.setSize(700, 580);
        this.setTitle("花卉信息管理系統(tǒng)");
        this.setLocation(600,250);
        this.setBackground(Color.lightGray);
        this.init();
        this.refreshTable();
        this.setVisible(true);
    
        
    }
    private void init()
    {
        //增刪查改功能入口按鈕
        btGroup=new ButtonGroup();
        rbts=new JButton[4];
        String[] strs = {"增加","刪除","搜索","修改"};
        for(int i = 0;i<strs.length;i++)
        {
            rbts[i]=new JButton(strs[i]);
            rbts[i].setSize(70, 30);
            rbts[i].setLocation(150*i+80, 10);
            btGroup.add(rbts[i]);//從邏輯上將單選按鈕添加到一個(gè)按鈕數(shù)組中
            this.add(rbts[i]);//從物理位置上將單選按鈕添加到窗體中
            rbts[i].addActionListener(this);
        }
        
        
        String[] string = { "搜索條件", "編號(hào)", "名稱(chēng)" };
        comboBox = new JComboBox(string);
        comboBox.setSize(100,30);
        comboBox.setLocation(50,70);
        this.add(comboBox);
        
        SearchText = new JTextField();
        SearchText.setSize(180,30);
        SearchText.setLocation(170, 70);
        this.add(SearchText);
        
        SearchButton = new JButton("搜索");
        SearchButton.setSize(70, 30);
        SearchButton.setLocation(380, 70);
        SearchButton.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e) {
                String item = (String)comboBox.getSelectedItem();
                ArrayList<String> result=new ArrayList<String>();
                if("搜索條件".equals(item))
                {
                    SearchText.setText("");
                }else if("編號(hào)".equals(item)){
                    //根據(jù)編號(hào)進(jìn)行查找的方法
                    if(checkIsNull()){
                        result.add(FlowerDAO.findFlowerBySno(SearchText.getText().trim()));
                        JOptionPane.showMessageDialog(null, result.clone());
                    }else{
                        JOptionPane.showMessageDialog(null, "未輸入查詢(xún)信息","提示", JOptionPane.ERROR_MESSAGE);
                    }
                    
                }else if("名稱(chēng)".equals(item)){
                    //根據(jù)名稱(chēng)進(jìn)行查找的方法
                    if(checkIsNull())
                    {
                        result.add(FlowerDAO.findFlowerBySname(SearchText.getText().trim()));
                        JOptionPane.showMessageDialog(null, result.clone());
                    }else{
                        JOptionPane.showMessageDialog(null, "未輸入查詢(xún)信息", "提示", JOptionPane.ERROR_MESSAGE);
                    }
                }
            }
        }
                    
        );
        this.add(SearchButton);    
    }
    
    private void refreshTable()
    {
        tableLabel = new JLabel("花卉列表");    
        tableLabel.setBounds(300,105, 100, 50);
        tableLabel.setFont(new Font("宋體", Font.BOLD , 20));
        
        String[] columnNames = {"編號(hào)","名稱(chēng)","單價(jià)","計(jì)價(jià)單位"};
        FlowerDAO dao=new FlowerDAO();
        ArrayList<String> flos=dao.findAllFlowers();
        Object[][] objs=new Object[flos.size()][4];
        for(int i=0;i<flos.size();i++)
        {
            String[] strs1=flos.get(i).split(",");
            objs[i][0]=strs1[0];
            objs[i][1]=strs1[1];
            objs[i][2]=strs1[2];
            objs[i][3]=strs1[3];
            System.out.println(strs1[0]);
        }
        
        table=new JTable(objs,columnNames);
        table.setSize(380,150);
        tablePane = new JScrollPane(table);
        tablePane.setSize(660, 350);
        tablePane.setLocation(10, 150);
        table.getTableHeader().setReorderingAllowed(false);
        table.getTableHeader().setResizingAllowed(false);
        table.enable(false);
        
        //this.removeAll();
        //this.init();
        this.add(tableLabel);
        this.add(tablePane);
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
         String buttonName = e.getActionCommand();
          if(buttonName.equals("增加")){
              AddFlower addflower = new AddFlower();
          }else if(buttonName.equals("刪除")){
              DeleteFlower deleteflower = new DeleteFlower();
          }else if(buttonName.equals("搜索")){
              System.out.println("已處在搜索界面上");
          }else{
              ModifyFlower modifyflower = new ModifyFlower();
          }
        
    }
    
    private boolean checkIsNull()
    {
        boolean flag=true;
        if(SearchText.getText().trim().equals(""))
        {
            flag = false;
        }
        return flag;
    }
    
    private Object checkInput()
    {    
        String result="";
        String result1="";
            for(int i=0;i<SearchText.getText().trim().length();i++)
            {
                char ch=SearchText.getText().trim().charAt(i);
                if((ch<'0')||(ch>'9'))
                {
                    result="編號(hào)中包含非數(shù)字字符";
                    break;
                }else
                {
                    result="";
                    break;
                }
            }
            return result;
        
    }
 
 
}

修改花卉界面(ModifyFlower.java):

import javax.swing.*;
 
import java.awt.Font;
import java.awt.event.*;
import java.util.ArrayList;
 
public class ModifyFlower extends JFrame implements ActionListener
{
 JButton[] rbts;//按鈕數(shù)組對(duì)象
 ButtonGroup btGroup;//按鈕組,從邏輯上來(lái)涵蓋所有的單選按鈕
 
 JLabel tableLabel;//標(biāo)題
 JScrollPane tablePane;//滾動(dòng)視口
 JTable table;//花卉列表
 
 JLabel NumLabel;//編號(hào)
 JLabel NameLabel;//名稱(chēng)
 JLabel PriceLabel;//單價(jià)
 JLabel UnitLabel;//計(jì)價(jià)單位
 
 JTextField NumText;//編號(hào)文本框
 JTextField NameText;//名稱(chēng)文本框
 JTextField PriceText;//單價(jià)文本框
 JTextField UnitText;//計(jì)價(jià)單位文本框
 
 JButton Modifybt;//修改按鈕
 public ModifyFlower()
 {
  this.setLayout(null);
  this.setSize(700, 580);
  this.setTitle("花卉信息管理系統(tǒng)");
  this.setLocation(600,250);
  this.init();
  this.refreshTable();
  this.setVisible(true);
 }
 private void init()
 {
  //增刪查改功能入口按鈕
  btGroup=new ButtonGroup();
  rbts=new JButton[4];
  String[] strs = {"增加","刪除","搜索","修改"};
  for(int i = 0;i<strs.length;i++)
  {
   rbts[i]=new JButton(strs[i]);
   rbts[i].setSize(70, 30);
   rbts[i].setLocation(150*i+80, 10);
   btGroup.add(rbts[i]);//從邏輯上將單選按鈕添加到一個(gè)按鈕數(shù)組中
   this.add(rbts[i]);//從物理位置上將單選按鈕添加到窗體中
   rbts[i].addActionListener(this);
  }
  
  //編號(hào)
  NumLabel=new JLabel("編號(hào)");
  NumLabel.setFont(NumLabel.getFont().deriveFont(Font.BOLD, 16));
  NumLabel.setSize(80,30);
  NumLabel.setLocation(80, 60);
  this.add(NumLabel);
  NumText=new JTextField();
  NumText.setSize(100,30);
  NumText.setLocation(140, 60);
  this.add(NumText);
  
  //名稱(chēng)
  NameLabel=new JLabel("名稱(chēng)");
  NameLabel.setFont(NameLabel.getFont().deriveFont(Font.BOLD, 16));
  NameLabel.setSize(80,30);
  NameLabel.setLocation(300,60);
  this.add(NameLabel);
  NameText=new JTextField();
  NameText.setSize(100,30);
  NameText.setLocation(380, 60);
  this.add(NameText);
  
  //單價(jià)
  PriceLabel=new JLabel("單價(jià)");
  PriceLabel.setFont(PriceLabel.getFont().deriveFont(Font.BOLD, 16));
  PriceLabel.setSize(80,30);
  PriceLabel.setLocation(80, 100);
  this.add(PriceLabel);
  PriceText=new JTextField();
  PriceText.setSize(100,30);
  PriceText.setLocation(140, 100);
  this.add(PriceText);
 
  //計(jì)價(jià)單位
  UnitLabel=new JLabel("計(jì)價(jià)單位");
  UnitLabel.setFont(UnitLabel.getFont().deriveFont(Font.BOLD, 16));
  UnitLabel.setSize(80,30);
  UnitLabel.setLocation(300, 100);
  this.add(UnitLabel);
  UnitText=new JTextField();
  UnitText.setSize(100,30);
  UnitText.setLocation(380, 100);
  this.add(UnitText);
  
  Modifybt = new JButton("修改");
  Modifybt.setSize(70, 30);
  Modifybt.setLocation(530, 100);
  Modifybt.addActionListener(new ActionListener()
  {
   @Override
   public void actionPerformed(ActionEvent e) {
    if(!checkIsNull())//如果用戶(hù)輸入為空的話(huà)
    {
      final ImageIcon icon = new ImageIcon("黑人問(wèn)號(hào).png");
      JOptionPane.showMessageDialog(null,"輸入信息為空!", "提示", JOptionPane.INFORMATION_MESSAGE, icon);   }
    else
    {
     if(!checkInput().equals(""))
     {
      JOptionPane.showMessageDialog(null,checkInput());
     }
     else
     {
      FlowerDAO dao=new FlowerDAO();
      //創(chuàng)建一個(gè)操作學(xué)生信息文本文件的對(duì)象
      StringBuffer floInfo=new StringBuffer();
      floInfo.append(NumText.getText().trim()+",");
      floInfo.append(NameText.getText().trim()+",");
      floInfo.append(PriceText.getText().trim()+",");
      floInfo.append(UnitText.getText().trim());
      if(dao.ModifyFlower(floInfo.toString()))
      {
       final ImageIcon icon2 = new ImageIcon("OK2.png");
       JOptionPane.showMessageDialog(null,"修改成功", "提示", JOptionPane.INFORMATION_MESSAGE, icon2);
       NumText.setText("");
       NameText.setText("");
       PriceText.setText("");
       UnitText.setText("");
       refreshTable();
       //添加成功后刷新表格
      }
      else
      {
       JOptionPane.showMessageDialog(null,"修改記錄失敗");
      }
     }
    }
  }
  }  
  );
  this.add(Modifybt);
  
 }
 
 //表格
 private void refreshTable()
 {
  tableLabel = new JLabel("花卉列表"); 
  tableLabel.setBounds(300,140, 100, 50);
  tableLabel.setFont(new Font("宋體", Font.BOLD , 20));
  
  String[] columnNames = {"編號(hào)","名稱(chēng)","單價(jià)","計(jì)價(jià)單位"};
  FlowerDAO dao=new FlowerDAO();
  ArrayList<String> flos=dao.findAllFlowers();
  Object[][] objs=new Object[flos.size()][4];
  for(int i=0;i<flos.size();i++)
  {
   String[] strs1=flos.get(i).split(",");
   objs[i][0]=strs1[0];
   objs[i][1]=strs1[1];
   objs[i][2]=strs1[2];
   objs[i][3]=strs1[3];
   System.out.println(strs1[0]);
  }
  
  table=new JTable(objs,columnNames);
  table.setSize(380,150);
  tablePane = new JScrollPane(table);
  tablePane.setSize(660, 320);
  tablePane.setLocation(10, 190);
  table.getTableHeader().setReorderingAllowed(false);
  table.getTableHeader().setResizingAllowed(false);
  table.enable(false);
  
  this.add(tableLabel);
  this.add(tablePane);
 }
 
 //刷新表格
 public void run() {
  while (true) {
   //每隔1秒鐘更新JTable
   table.validate();
   table.updateUI();
   try {
    Thread.sleep(1000);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
  }
 }
 
 @Override
 public void actionPerformed(ActionEvent e) {
   String buttonName = e.getActionCommand();
       if(buttonName.equals("增加")){
        AddFlower addflower = new AddFlower(); 
       }else if(buttonName.equals("刪除")){
        DeleteFlower deleteflower = new DeleteFlower();
       }else if(buttonName.equals("搜索")){
        SearchFlower searchflower = new SearchFlower();
       }else{
        System.out.println("已處在修改界面上");
       }
  
 }
 
 private boolean checkIsNull() 
 {
  boolean flag=true;
  if(NumText.getText().trim().equals(""))
  {
   flag = false;
  }else if(NameText.getText().trim().equals(""))
  {
   flag=false;
  }else if(PriceText.getText().trim().equals(""))
  {
   flag=false;
  }else if(UnitText.getText().trim().equals(""))
  {
   flag=false;
  }
  return flag;
 }
 
 private Object checkInput() 
 { 
  String result="";
  String result1="";
   for(int i=0;i<NumText.getText().trim().length();i++)
   {
    char ch=NumText.getText().trim().charAt(i);
    if((ch<'0')||(ch>'9'))
    {
     result="編號(hào)中包含非數(shù)字字符";
     break;
    }
   }
   for(int i=0;i<PriceText.getText().trim().length();i++)
   {
    char ch=PriceText.getText().trim().charAt(i);
    if((ch<'0')||(ch>'9'))
    {
     result1="單價(jià)中包含非數(shù)字字符";
     break;
    }
   }
  if(result=="編號(hào)中包含非數(shù)字字符" && result1=="")
  {
   return result;
  }else if(result1=="單價(jià)中包含非數(shù)字字符" && result=="")
  {
   return result1;
  }else if(result=="編號(hào)中包含非數(shù)字字符" && result1=="單價(jià)中包含非數(shù)字字符")
  {
   return "編號(hào)和單價(jià)中均包含非數(shù)字字符";
  }else
  {
   return "";
  }
  
 }
 
}

增刪查改方法實(shí)現(xiàn)(FlowerDAO.java):

import java.io.*;
import java.util.ArrayList;
 
public class FlowerDAO {
 //查找所有的花卉信息
 public ArrayList<String> findAllFlowers()
 {
  ArrayList<String> result=new ArrayList<String>();
  try {
   FileReader fr=new FileReader("Flower.txt");
   //產(chǎn)生了一個(gè)文件字符輸入流對(duì)象
   BufferedReader br=new BufferedReader(fr);
   //以上一個(gè)對(duì)象作為參數(shù)來(lái)創(chuàng)建一個(gè)緩沖的字符輸入流對(duì)象
   String str=br.readLine();//讀取一行數(shù)據(jù)
   while(str!=null)
   {
    result.add(str);
    str=br.readLine();
   }
   br.close();
   fr.close();
  }
  catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   System.out.println("文件未找到");
  }
  catch (IOException e) {
   // TODO Auto-generated catch block
   System.out.println("文件讀錯(cuò)誤");
  }
  return result;
 }
 
 //通過(guò)編號(hào)來(lái)查找花朵的基本信息
 public static String findFlowerBySno(String sno)
 {
  String result="不存在這個(gè)花朵";
  try {
   FileReader fr=new FileReader("Flower.txt");
   //產(chǎn)生了一個(gè)文件字符輸入流對(duì)象
   BufferedReader br=new BufferedReader(fr);
   //以上一個(gè)對(duì)象作為參數(shù)來(lái)創(chuàng)建一個(gè)緩沖的字符輸入流對(duì)象
   String str=br.readLine();//讀取一行數(shù)據(jù)
   boolean flag=true;
   while(flag)
   {
    if(str.startsWith(sno.trim()))
    {
     result=str;
     flag=false;
    }
    str=br.readLine();//繼續(xù)讀取下一行
    if(str==null)
    {
     flag=false;
    }
   }
   br.close();
   fr.close();
  }
  catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   System.out.println("文件未找到");
  }
  catch (IOException e) {
   // TODO Auto-generated catch block
   System.out.println("文件讀錯(cuò)誤");
  }
  return result;
 }
 
 
 //通過(guò)名稱(chēng)來(lái)查找花朵的基本信息
 public static String findFlowerBySname(String sname)
 {
  String result="不存在這個(gè)花朵";
  try {
   FileReader fr=new FileReader("Flower.txt");
   //產(chǎn)生了一個(gè)文件字符輸入流對(duì)象
   BufferedReader br=new BufferedReader(fr);
   //以上一個(gè)對(duì)象作為參數(shù)來(lái)創(chuàng)建一個(gè)緩沖的字符輸入流對(duì)象
   String str=br.readLine();//讀取一行數(shù)據(jù)
   boolean flag=true;
   while(flag)
   {
    if(str.substring(4).startsWith(sname.trim()))
    {
     result=str;
     flag=false;
    }
    str=br.readLine();//繼續(xù)讀取下一行
    if(str==null)
    {
     flag=false;
    }
   }
   br.close();
   fr.close();
  }
  catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   System.out.println("文件未找到");
  }
  catch (IOException e) {
   // TODO Auto-generated catch block
   System.out.println("文件讀錯(cuò)誤");
  }
  return result;
 }
 
 //通過(guò)名稱(chēng)來(lái)查找花朵的基本信息
 public String findFlowerByname(boolean bool,String name)
 {
  String result="不存在這個(gè)花朵";
  try {
   FileReader fr=new FileReader("Flower.txt");
   //產(chǎn)生了一個(gè)文件字符輸入流對(duì)象
   BufferedReader br=new BufferedReader(fr);
   //以上一個(gè)對(duì)象作為參數(shù)來(lái)創(chuàng)建一個(gè)緩沖的字符輸入流對(duì)象
   String str=br.readLine();//讀取一行數(shù)據(jù)
   boolean flag=true;
   while(flag)
   {
    String temp=str;
    if(!bool)
    {
     temp=str.substring(4);
    }
    if(temp.startsWith(name.trim()))
    {
     result=str;
     flag=false;
    }
    str=br.readLine();//繼續(xù)讀取下一行
    if(str==null)
    {
     flag=false;
    }
   }
   br.close();
   fr.close();
  }
  catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   System.out.println("文件未找到");
  }
  catch (IOException e) {
   // TODO Auto-generated catch block
   System.out.println("文件讀錯(cuò)誤");
  }
  return result;
 }
 
 //增加一條花朵記錄
 public boolean AddFlower(String Floinfo)
 {
  String[] strs=Floinfo.split(",");
  if(!numIsExist(strs[0]) && !nameIsExist(strs[1]))
  {
  try {
   FileWriter fw=new FileWriter("Flower.txt",true);
   //創(chuàng)建一個(gè)文件的字符輸出流,第二個(gè)參數(shù)表示是在文件尾部進(jìn)行追加
   BufferedWriter bw=new BufferedWriter(fw);
   //以上面創(chuàng)建的對(duì)象為參數(shù)創(chuàng)建一個(gè)緩沖字符輸出流
   bw.newLine();
   //創(chuàng)建新的一行
   bw.write(Floinfo);
   bw.close();
   fw.close(); 
  }
  catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   System.out.println("文件未找到");
  }
  catch (IOException e) {
   // TODO Auto-generated catch block
   System.out.println("文件寫(xiě)錯(cuò)誤");
  }
  return true;
  }
  else
  {
   return false;
  }
 }
 
 //判斷是否已經(jīng)存在重復(fù)的編號(hào)
 private boolean numIsExist(String num)
 {
  boolean result=false;
  try {
   FileReader fr=new FileReader("Flower.txt");
   //產(chǎn)生了一個(gè)文件字符輸入流對(duì)象
   BufferedReader br=new BufferedReader(fr);
   //以上一個(gè)對(duì)象作為參數(shù)來(lái)創(chuàng)建一個(gè)緩沖的字符輸入流對(duì)象
   String str=br.readLine();//讀取一行數(shù)據(jù)
   while(str!=null)
   {
    if(str.startsWith(num))
    {
     result=true;
     break;
    }
    str=br.readLine();
   }
   
   br.close();
   fr.close();
  }
  catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   System.out.println("文件未找到");
  }
  catch (IOException e) {
   // TODO Auto-generated catch block
   System.out.println("文件讀錯(cuò)誤");
  }
  return result;
 }
 
 //判斷名稱(chēng)是否重復(fù)
 private boolean nameIsExist(String name)
 {
  boolean result=false;
  try {
   FileReader fr=new FileReader("Flower.txt");
   //產(chǎn)生了一個(gè)文件字符輸入流對(duì)象
   BufferedReader br=new BufferedReader(fr);
   //以上一個(gè)對(duì)象作為參數(shù)來(lái)創(chuàng)建一個(gè)緩沖的字符輸入流對(duì)象
   String str=br.readLine();//讀取一行數(shù)據(jù)
   while(str!=null)
   {
    if(str.startsWith(name))
    {
     result=true;
     break;
    }
    str=br.readLine();
   }
   
   br.close();
   fr.close();
  }
  catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   System.out.println("文件未找到");
  }
  catch (IOException e) {
   // TODO Auto-generated catch block
   System.out.println("文件讀錯(cuò)誤");
  }
  return result;
 }
 
 //增加多條花朵記錄
 public int AddFlowers(String[] Flos)
 {
  int result=0;
  //定義一個(gè)變量來(lái)保存添加成功的花卉記錄個(gè)數(shù)
  if(Flos!=null)
  {
   if(Flos.length>0)
   {
    for(int i=0;i<Flos.length;i++)
    {
     if(AddFlower(Flos[i]))
     {
      result++;
     }
    }
   }
  }
  return result;
 }
 
 //刪除一條花朵記錄的方法
 public static boolean DeleteFlower(String num)
 {
  boolean result=false;
  //保存刪除是否成功的變量
  try
  {
   FileReader fr=new FileReader("Flower.txt");
   BufferedReader br=new BufferedReader(fr);
   String str=br.readLine();//讀取一行數(shù)據(jù)
   ArrayList<String> list=new ArrayList<String>();
   //保存讀入的花朵信息
   boolean flag=true;
   while(flag)
   {
    list.add(str);
    str=br.readLine();//再次讀取一行數(shù)據(jù)
    if(str==null)
    {
     flag=false;
    }
   }
   br.close();
   fr.close();
   for(int i=0;i<list.size();i++)
   {
    if(list.get(i).startsWith(num))
    {
     list.remove(i);
     result=true;
     break;
    }
   }//將對(duì)應(yīng)的花朵記錄移除
   FileWriter fw=new FileWriter("Flower.txt");
   //創(chuàng)建一個(gè)文件的字符輸出流,不需要追加
   BufferedWriter bw=new BufferedWriter(fw);
   //以上面創(chuàng)建的對(duì)象為參數(shù)創(chuàng)建一個(gè)緩沖字符輸出流
   for(int i=0;i<list.size();i++)
   {
    bw.write(list.get(i));
    //分別寫(xiě)入花卉記錄
       bw.newLine();
   }
   bw.flush();
   bw.close();
   fw.close();
  }
  catch(IOException ex)
  {
   
  }
  return result;
 }
 //刪除多條花朵記錄的方法
 public int DeleteFlowers(String[] nums)
 {
  int result=0;
  //用來(lái)保存成功刪除的花朵記錄個(gè)數(shù)
  if(nums!=null)
  {
   if(nums.length>0)
   {
    for(int i=0;i<nums.length;i++)
    {
     if(DeleteFlower(nums[i]))
     {
      result++;
     }
    }
   }
  }
  return result;
 }
 
 //修改一條記錄的方法
 public boolean ModifyFlower(String Floinfo)
 {
  String[] strs=Floinfo.split(",");
  if(numIsExist(strs[0]))
  {
   try
   {
    FileReader fr=new FileReader("Flower.txt");
    //產(chǎn)生了一個(gè)文件字符輸入流對(duì)象
    BufferedReader br=new BufferedReader(fr);
    //以上一個(gè)對(duì)象作為參數(shù)來(lái)創(chuàng)建一個(gè)緩沖的字符輸入流對(duì)象
    String str=br.readLine();//讀取一行數(shù)據(jù)
    ArrayList<String> list=new ArrayList<String>();
    //保存讀入的花朵信息
    boolean flag=true;
    while(flag)
    {
     list.add(str);
     str=br.readLine();//再次讀取一行數(shù)據(jù)
     if(str==null)
     {
      flag=false;
     }
    }
    br.close();
    fr.close();
    
    for(int i=0;i<list.size();i++)
    {
     if(list.get(i).startsWith(strs[0]))
     {
      list.remove(i);
      //先從動(dòng)態(tài)數(shù)組對(duì)象中移除
      list.add(Floinfo);
      //然后再添加修改后的花朵記錄
      break;
     }
    }//將對(duì)應(yīng)的花朵記錄移除
    FileWriter fw=new FileWriter("Flower.txt");
    //創(chuàng)建一個(gè)文件的字符輸出流,不需要追加
    BufferedWriter bw=new BufferedWriter(fw);
    //以上面創(chuàng)建的對(duì)象為參數(shù)創(chuàng)建一個(gè)緩沖字符輸出流
    for(int i=0;i<list.size();i++)
    {
     bw.write(list.get(i));
     //分別寫(xiě)入花朵記錄
        bw.newLine();
    }
    bw.flush();
    bw.close();
    fw.close();
   }
   catch(IOException ex)
   {
    
   }
   return true;
  }
  else
  {
   return false;
  }
 }
 //修改多條花朵記錄
 public int ModifyFlowers(String[] Flos)
 {
  int result=0;
  if(Flos!=null)
  {
   if(Flos.length>0)
   {
    for(int i=0;i<Flos.length;i++)
    {
     if(ModifyFlower(Flos[i]))
     {
      result++;
     }
    }
   }
  }
  return result;
 }
 
}

這個(gè)代碼量有點(diǎn)大,但難度倒不大。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論