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