📄 commonpanel.java
字号:
//import java.io.*;
import java.text.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.*;
import edu.njust.cs.*;
public abstract class CommonPanel extends JPanel{
NumberFormat nf = NumberFormat.getNumberInstance();
DecimalFormat df= (DecimalFormat)nf; //数值格式化
JButton btnAdd=new TextAndPicButton(
"image/addrow20.gif"," 新 增 ");
JButton btnDelete=new TextAndPicButton(
"image/deleterow20.gif"," 删 除 ");
JButton btnEdit=new TextAndPicButton(
"image/editrow20.gif"," 编 辑 ");
JButton btnSearch=new TextAndPicButton(
"image/search20.gif"," 查 找 ");
JButton btnExport=new TextAndPicButton(
"image/exportdata20.gif"," 导 出 ");
JButton btnClear=new TextAndPicButton(
"image/cleartable20.gif"," 清 空 ");
JButton btnBack=new TextAndPicButton(
"image/back20.gif"," 返 回 ");
JToolBar toolbar=new JToolBar();
//表格列名
String [] columnNames;
//表格每列的数据类型
Class []dataType;
CustomTableModel model=null;
JTable table=null;
Connection con=null;
//等待对话框
JDialog waitingScreen=null;
JProgressBar progressBar=new JProgressBar();
JLabel labProgress=new JLabel("");
MainApp father;
TransferFocusListener tfl=new TransferFocusListener();
public CommonPanel(MainApp f,Connection c){
father=f;
con=c;
df.applyPattern("##########0.00");//保留到小数点后2位
btnAdd.setToolTipText("添加一条记录");
btnDelete.setToolTipText("删除指定的记录");
btnEdit.setToolTipText("编辑指定的记录");
btnSearch.setToolTipText("数据库搜索");
btnClear.setToolTipText("清空表格中的记录");
btnBack.setToolTipText("返回导航面板");
//定制各个按钮的功能
this.btnAdd.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
add();
}
});
this.btnEdit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
modify();
}
});
btnDelete.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
delete();
}
});
btnSearch.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
search();
}
});
btnClear.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
SqlUtil.clearAllRowsInTable(model);
}
});
btnBack.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
father.setSelectedPanel(new NavigatorPanel(father));
}
});
BorderLayout border=new BorderLayout();
this.setLayout(border);
toolbar.setFloatable(false);
toolbar.add(btnAdd);
toolbar.add(btnEdit);
toolbar.add(btnDelete);
toolbar.add(btnSearch);
toolbar.add(btnClear);
toolbar.add(btnBack);
this.add(toolbar,"North");
}
//创建表格
public void createTable(){
model=new CustomTableModel(0,
columnNames.length,columnNames,dataType); table = new JTable(model);
add(new JScrollPane(table));
//设置表格属性
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION );
table.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
int clickCount=e.getClickCount();
if(clickCount>1)
modify();
}
});
}
//以下4个抽象方法由子类具体实现
public abstract void modify();
public abstract void add();
public abstract void delete();
public abstract void search();
//设置表格指定列的宽度
public void setTableColumnWidth(int column,int width){
if(column<columnNames.length){
TableColumn col=table.getColumn(columnNames[column]);
col.setPreferredWidth(width);
}
}
//将对话框窗口定位在父窗口的居中位置
public void setSizeAndPosition(JDialog jd ,int w,int h){
jd.setSize(w,h);
Dimension d=father.getSize();
Point pp=father.getLocation();
jd.setLocation(pp.x+(d.width-w)/2,pp.y+(d.height-h)/2);
}
public void showWaitingScreen(){
if(this.waitingScreen==null){
waitingScreen=new JDialog(father,true);
waitingScreen.getContentPane().add(this.labProgress,"North");
waitingScreen.getContentPane().add(this.progressBar,"South");
waitingScreen.setSize(300,70);
Dimension d=father.getSize();
Point p=father.getLocation();
waitingScreen.setLocation(
p.x+(d.width-300)/2,p.y+(d.height-70)/2);
waitingScreen.setResizable(false);
waitingScreen.setDefaultCloseOperation(0);
}
waitingScreen.show();
}
public void hideWaitingScreen(){
if(waitingScreen!=null) waitingScreen.setVisible(false);
father.toFront();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -