📄 frmcount.java
字号:
import java.awt.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.table.AbstractTableModel;
public class FrmCount extends JDialog {
public FrmCount(Frame owner, String title, boolean modal) {
super(owner, title, modal);
Gload.checkLogin(this);
try {
//setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
jbInit();
this.setBounds((Gload.de.width - 425)/2, (Gload.de.height-440)/2, 425, 440);
this.setResizable(false);
action();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void action() {
AbstractTableModel3 dm = new AbstractTableModel3();
ResultSet rs = Conn.query("select count(id) as c from 类别");
int i = 0;
try {
rs.next();
i = rs.getInt("c");
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
i++;
dm.data = new String[4][i];
String sql = "select '所有类别' 类别,sum(借出) 借出,sum(库存) 库存,(";
sql += " select sum(V) from (select 价格*(库存+借出) as V from (select 价格,库存,借出 from (图书信息 left join 图书状态 on 图书信息.id=图书状态.书号)) as A) As AA) 价值 from 图书状态";
sql += " union all";
sql += " select 类名 as 类别, sum(借出) 借出,sum(库存) 库存, sum(价值) 价值 from";
sql += " (select 书号,库存,借出,价格*(借出+库存) 价值,类名 from 图书状态,图书信息,类别 where 类别.id=类别ID and 图书信息.id=图书状态.书号)";
sql += " as BB group by 类名";
rs = Conn.query(sql);
try {
for (int j = 0; j<i && rs.next(); j++) {
for (int k=0; k<4; k++) {
dm.data[k][j] = rs.getString(k+1);
}
}
} catch(Exception e1) {}
JTable jTable1 = new JTable(dm);
jScrollPane1.getViewport().add(jTable1);
}
public FrmCount() {
this(new Frame(), "统计信息", false);
}
private void jbInit() throws Exception {
this.getContentPane().setLayout(null);
jTextArea1.setBorder(BorderFactory.createEtchedBorder());
jTextArea1.setBounds(new Rectangle(8, 29, 405, 378));
this.getContentPane().add(jLabel1);
//this.getContentPane().add(jTextArea1);
this.jTextArea1.setEditable(false);
jLabel1.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
jLabel1.setText("统计信息");
jLabel1.setBounds(new Rectangle(0, 2, 412, 26));
jScrollPane1.getViewport().setBackground(Color.lightGray);
jScrollPane1.setBounds(new Rectangle(5, 38, 410, 368));
this.getContentPane().add(jScrollPane1);
}
JScrollPane jScrollPane1 = new JScrollPane();
JTextArea jTextArea1 = new JTextArea();
TitledBorder titledBorder1 = new TitledBorder("");
JLabel jLabel1 = new JLabel();
public static void main(String[] a) {
new FrmCount().show();
}
}
class AbstractTableModel3 extends AbstractTableModel {
private String[] title = {"类名", "借出", "库存", "价值"};
public String[][] data;
public AbstractTableModel3() {
data = new String[title.length][1];
}
public int getColumnCount() { return title.length; }
public int getRowCount() { return data[0].length;}
public Object getValueAt(int row, int col) {
if (data[col][row] == null)
data[col][row] = "";
return data[col][row];
}
public String getColumnName(int column){ return title[column];}//设置表格列名
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -