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

📄 manageaccountframe.java

📁 Java banking application with GUI add/delete/update new account partially generic GUI
💻 JAVA
字号:
import javax.swing.JFrame;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.table.TableColumn;
import javax.swing.JFormattedTextField;
import java.text.NumberFormat;
import javax.swing.text.NumberFormatter;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.DefaultCellEditor;
import javax.swing.JPanel;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.sql.ResultSet;

public class ManageAccountFrame
    extends JFrame {

  private JFormattedTextField accountno;
  private JComboBox type;
  private JTextField holdername;
  private JTextField Balance;
  private JFormattedTextField balance;
  private JButton search;
  private JScrollPane sp;
  private JButton delete;
  private JButton update;
  private JTable jtable;
  final int colUpdate=4;
  final int colDelete=5;
  private AccountDAO accountDAO=new AccountDAO();	

  public ManageAccountFrame() {

    //setJMenuBar(new MyMenuBar(this));
    jtable=convertResultSetToTable(accountDAO.getAccount());
    addCheckBoxes();
    sp = new JScrollPane(jtable);
	setJFrame();

    setBounds(100,100,800, 550);
    setVisible(true);
  }

  public JTable convertResultSetToTable(ResultSet rs){
	  JTable jtable=null;
	  try{
		  DefaultTableModel s = new DefaultTableModel(rs);
		  jtable=new JTable(s);
	  }catch(Exception e){
		  System.out.println("convertToTable"+e);
	  }
      return jtable;
  }

	public void setJFrame()
	{
		searchPanel();
    Container contentpane = getContentPane();
    contentpane.setLayout(new FlowLayout());
	JPanel managePanel=new JPanel();
	managePanel.setLayout(new BorderLayout());
	JPanel jp1=new JPanel();
    update = new JButton("Update");
    update.addActionListener(new ButtonListener(this));
    jp1.add(update);
    delete = new JButton("Delete");
    delete.addActionListener(new ButtonListener(this));
    jp1.add(delete);
    managePanel.add(jp1,BorderLayout.NORTH);
    managePanel.add(sp,BorderLayout.CENTER);
    contentpane.add(managePanel);
	}

  public void searchPanel()
  {
    JPanel searchpanel=new JPanel();
    searchpanel.setLayout(new BorderLayout());
    searchpanel.add(new JLabel("Search Account"),BorderLayout.NORTH);

    JPanel jp1=new JPanel();
    jp1.setLayout(new GridLayout(6,2));

    jp1.add(new JLabel("Account Number"));
    accountno = new JFormattedTextField();
    accountno.setValue(new Integer(0));
    accountno.setColumns(10);
    jp1.add(accountno);
    jp1.add(new JLabel("Type"));
    type=new JComboBox();
    type.addItem("Current");
    type.addItem("Saving");
    jp1.add(type);
    jp1.add(new JLabel("Holder Name"));
    holdername = new JTextField(10);
    jp1.add(holdername);
    jp1.add(new JLabel("Balance"));
    DefaultFormatterFactory dff=new DefaultFormatterFactory(
		 new NumberFormatter(NumberFormat.getCurrencyInstance()),
		 new NumberFormatter(NumberFormat.getCurrencyInstance()),
		 new NumberFormatter(NumberFormat.getNumberInstance()));
    balance = new JFormattedTextField(dff);
    balance.setValue(new Double(0.0));
    balance.setColumns(10);
    jp1.add(balance);

    searchpanel.add(jp1,BorderLayout.CENTER);
    search = new JButton("Search");
    search.addActionListener(new ButtonListener(this));

    searchpanel.add(search,BorderLayout.SOUTH);

    getContentPane().add(searchpanel);
  }

    public void setUpSportColumn(JTable table,
                                 TableColumn typeColumn) {
        //Set up the editor for the sport cells.
        JComboBox comboBox = new JComboBox();
	  comboBox.addItem("Current");
	  comboBox.addItem("Saving");
        typeColumn.setCellEditor(new DefaultCellEditor(comboBox));

    }

  public void addCheckBoxes()
  {
	  DefaultTableModel model= (DefaultTableModel)jtable.getModel();

	  for(int i=model.getColumnCount()-1;i>=0;i--)
	  	model.setColumnIdentifier(i,model.getColumnIdentifier(i));

	  Boolean array[]=new Boolean[jtable.getRowCount()];
	  model.addColumn("Update",array);
	  model.addColumn("Delete",array);

	  TableColumn col=jtable.getColumnModel().getColumn(colUpdate);
	  col.setCellRenderer(jtable.getDefaultRenderer(Boolean.class));
	  col.setCellEditor(jtable.getDefaultEditor(Boolean.class));

	  col=jtable.getColumnModel().getColumn(colDelete);
	  col.setCellRenderer(jtable.getDefaultRenderer(Boolean.class));
	  col.setCellEditor(jtable.getDefaultEditor(Boolean.class));
	  setUpSportColumn(jtable, jtable.getColumnModel().getColumn(1));
  }

  private class ButtonListener implements ActionListener {
    private JFrame jframe;
    public ButtonListener(JFrame jf) {
      jframe = jf;
    }

    public void actionPerformed(ActionEvent ae) {
      Object source = ae.getSource();
      if (source.equals(update))
      {
        DefaultTableModel model= (DefaultTableModel)jtable.getModel();
        for(int i=model.getRowCount()-1;i>=0;i--)
        {
        	if(model.getValueAt(i,colUpdate)!=null)
        		if(model.getValueAt(i,colUpdate).toString().equals("true"))
        		{
					int id=Integer.parseInt(model.getValueAt(i,0).toString());
					String holdername=(String)model.getValueAt(i,1);
                                        String type=(String)model.getValueAt(i,2);
					double balance=Double.parseDouble(model.getValueAt(i,3).toString());
					accountDAO.updateAccount(id,holdername,type,balance);
					model.setValueAt(new Boolean(false),i,colUpdate);
				}
		}
      }
      else if (source.equals(delete))
      {
        DefaultTableModel model= (DefaultTableModel)jtable.getModel();
        for(int i=model.getRowCount()-1;i>=0;i--)
        {
        	if(model.getValueAt(i,colDelete)!=null)
        		if(model.getValueAt(i,colDelete).toString().equals("true"))
        		{
					accountDAO.deleteAccount(((Integer)model.getValueAt(i,0)).intValue());
					model.removeRow(i);
					i--;
				}
		}
	  TableColumn col=jtable.getColumnModel().getColumn(colUpdate);
	  col.setCellRenderer(jtable.getDefaultRenderer(Boolean.class));
	  col.setCellEditor(jtable.getDefaultEditor(Boolean.class));

	  col=jtable.getColumnModel().getColumn(colDelete);
	  col.setCellRenderer(jtable.getDefaultRenderer(Boolean.class));
	  col.setCellEditor(jtable.getDefaultEditor(Boolean.class));
      }
      else if (source.equals(search))
      {
		String temp=type.getSelectedItem().toString();
        jtable =convertResultSetToTable(accountDAO.searchAccount(((Number)accountno.getValue()).intValue(),holdername.getText(), (String)type.getSelectedItem(), ((Number)balance.getValue()).doubleValue()));
    	addCheckBoxes();
       	sp = new JScrollPane(jtable);
        jframe.getContentPane().removeAll();
        setJFrame();
        jframe.validate();
      }
    }
  }
}

⌨️ 快捷键说明

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