📄 inpanel.java
字号:
import db.*;
import bean.StockBean;
import querystock.NoSuchTickerException;
import querystock.QueryTheStock;
import querystock.WebsiteDataException;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.*;
import java.util.Vector;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;
public class InPanel extends JPanel {
public InPanel(int in_id) {
try {
jbInit(in_id);
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit(int in_id) throws Exception {
this.setLayout(null);
this.setSize(700, 500);
jLabel1.setText("股票代码:");
jLabel1.setBounds(new Rectangle(30, 25, 70, 25));
stock_code.setBounds(new Rectangle(90, 25, 120, 25));
jLabel2.setText("股票名称:");
jLabel2.setBounds(new Rectangle(240, 25, 70, 25));
stock_name.setBounds(new Rectangle(300, 25, 120, 25));
jLabel3.setText("当前价格:");
jLabel3.setBounds(new Rectangle(450, 25, 70, 25));
stock_npre.setBounds(new Rectangle(510, 25, 120, 25));
stock_npre.setEditable(false);
jLabel4.setText("购入单价:");
jLabel4.setBounds(new Rectangle(30, 65, 70, 25));
stock_pre.setBounds(new Rectangle(90, 65, 120, 25));
jLabel5.setText("购入数量:");
jLabel5.setBounds(new Rectangle(240, 65, 70, 25));
stock_num.setBounds(new Rectangle(300, 65, 120, 25));
jLabel6.setText("购入总额:");
jLabel6.setBounds(new Rectangle(450, 65, 70, 25));
stock_total.setBounds(new Rectangle(510, 65, 120, 25));
stock_total.setEditable(false);
jLabel7.setText("当前股票总额:");
jLabel7.setBounds(new Rectangle(30, 105, 100, 25));
stock_ntotal.setBounds(new Rectangle(120, 105, 120, 25));
stock_ntotal.setEditable(false);
jLabel8.setText("当前股票状态:");
jLabel8.setBounds(new Rectangle(270, 105, 100, 25));
stock_statu.setBounds(new Rectangle(370, 105, 120, 25));
stock_statu.setEditable(false);
insert.setBounds(new Rectangle(30, 150, 60, 30));
insert.setText("添加");
insert.addActionListener(new InPanel_insert_actionAdapter(this));
delete.setBounds(new Rectangle(120, 150, 60, 30));
delete.setText("删除");
delete.addActionListener(new InPanel_delete_actionAdapter(this));
update.setBounds(new Rectangle(210, 150, 60, 30));
update.setText("更新");
update.addActionListener(new InPanel_update_actionAdapter(this));
clear.setBounds(new Rectangle(300, 150, 60, 30));
clear.setText("清空");
clear.addActionListener(new InPanel_clear_actionAdapter(this));
sort_pre.setBounds(new Rectangle(390, 150, 120, 30));
sort_pre.setText("按购入价排序");
sort_pre.addActionListener(new InPanel_sort_pre_actionAdapter(this));
k_line.setBounds(new Rectangle(540, 150, 100, 30));
k_line.setText("查看K线图");
k_line.addActionListener(new InPanel_k_line_actionAdapter(this));
jScrollPane1.setBounds(new Rectangle(30, 200, 640, 280));
this.add(jLabel1);
this.add(stock_code);
this.add(jLabel2);
this.add(stock_name);
this.add(jLabel3);
this.add(stock_npre);
this.add(stock_pre);
this.add(jLabel4);
this.add(stock_num);
this.add(jLabel5);
this.add(stock_total);
this.add(jLabel6);
this.add(jLabel7);
this.add(stock_ntotal);
this.add(jLabel8);
this.add(stock_statu);
this.add(insert);
this.add(delete);
this.add(update);
this.add(clear);
this.add(sort_pre);
this.add(k_line);
this.add(jScrollPane1);
sb.setIn_id(in_id);
jScrollPane1.getViewport().add(table);
table.addMouseListener(new InPanel_table_mouseAdapter(this));
dt = setTable(dt,false);
table.setModel(dt);
table.setCellSelectionEnabled(true);
}
JLabel jLabel1 = new JLabel();
JTextField stock_code = new JTextField();
JLabel jLabel2 = new JLabel();
JTextField stock_name = new JTextField();
JLabel jLabel3 = new JLabel();
JTextField stock_npre = new JTextField();
JLabel jLabel4 = new JLabel();
JTextField stock_pre = new JTextField();
JLabel jLabel5 = new JLabel();
JTextField stock_num = new JTextField();
JLabel jLabel6 = new JLabel();
JTextField stock_total = new JTextField();
JLabel jLabel7 = new JLabel();
JTextField stock_ntotal = new JTextField();
JLabel jLabel8 = new JLabel();
JTextField stock_statu = new JTextField();
JButton insert = new JButton();
JButton delete = new JButton();
JButton sort_pre = new JButton();
JButton update = new JButton();
JButton clear = new JButton();
JButton k_line = new JButton();
JScrollPane jScrollPane1 = new JScrollPane();
MyTable table = new MyTable();
DefaultTableModel dt=new DefaultTableModel();
JOptionPane jOptionPane1 = new JOptionPane();
StockBean sb = new StockBean();
public void table_mouseClicked(MouseEvent e) {
stock_code.setEditable(false);
stock_name.setEditable(false);
int row = table.getSelectedRow();
String code = table.getValueAt(row, 0).toString();
String name = table.getValueAt(row, 1).toString();
String num = table.getValueAt(row, 2).toString();
String pre = table.getValueAt(row, 3).toString();
Float total = Integer.valueOf(num)*Float.valueOf(pre);
try {
String npre = QueryTheStock.getLastValue(code);
Float ntotal = Integer.valueOf(num)*Float.valueOf(npre);
stock_npre.setText(npre);
stock_ntotal.setText(ntotal.toString());
Float statu = ntotal-total;
if(statu>=0){
stock_statu.setText("+"+statu);
}else{
stock_statu.setText(statu.toString());
}
} catch (WebsiteDataException e1) {
e1.printStackTrace();
} catch (NoSuchTickerException e1) {
e1.printStackTrace();
}
stock_code.setText(code);
stock_name.setText(name);
stock_num.setText(num);
stock_pre.setText(pre);
stock_total.setText(total.toString());
}
public void clear_actionPerformed(ActionEvent e) {
clearText();
}
public void insert_actionPerformed(ActionEvent e) {
int code = stock_code.getText().length();
int name = stock_name.getText().length();
long num = 0;
float pre = 0;
if(code!=0&&name!=0){
sb.setStock_code(stock_code.getText());
sb.setStock_name(stock_name.getText());
if(stock_num.getText().length()!=0){
num = Long.valueOf(stock_num.getText());
sb.setStock_num(num);
}
if(stock_pre.getText().length()!=0){
pre = Float.valueOf(stock_pre.getText());
sb.setStock_pre(pre);
}
float total = num*pre;
sb.setStock_total(total);
StockDB sdb = new StockDB();
boolean flag = sdb.checkStock(sb);
if(flag){
int result = sdb.insertStock(sb);
if(result==1){
jOptionPane1.showMessageDialog(this, "成功添加股票信息--"+sb.getStock_name());
clearText();
Vector newrow = new Vector();
newrow.addElement(sb.getStock_code());
newrow.addElement(sb.getStock_name());
newrow.addElement(sb.getStock_num());
newrow.addElement(sb.getStock_pre());
dt.addRow(newrow);
table.setModel(dt);
}else{
jOptionPane1.showMessageDialog(this, "添加股票信息失败!");
}
}else{
jOptionPane1.showMessageDialog(this, sb.getStock_name()+"--股票信息已存在!");
}
}else{
jOptionPane1.showMessageDialog(this, "股票代码/股票名称不能为空");
}
}
public void delete_actionPerformed(ActionEvent e) {
int code = stock_code.getText().length();
int name = stock_name.getText().length();
if(code!=0&&name!=0){
int result = jOptionPane1.showConfirmDialog(this, "确定是否要删除股票--"+stock_name.getText()+"?");
if(result==0){
sb.setStock_code(stock_code.getText());
sb.setStock_name(stock_name.getText());
StockDB sdb = new StockDB();
result = sdb.deleteStock(sb);
if(result>0){
jOptionPane1.showMessageDialog(this, sb.getStock_name()+"股票删除成功!");
clearText();
dt = new DefaultTableModel();
dt = setTable(dt,false);
table.setModel(dt);
}else{
jOptionPane1.showMessageDialog(this, sb.getStock_name()+"股票删除失败!");
}
}
}else{
jOptionPane1.showMessageDialog(this, "请选择所要删除的股票信息!");
}
}
public void update_actionPerformed(ActionEvent e) {
int code = stock_code.getText().length();
if(code!=0){
sb.setStock_code(stock_code.getText());
sb.setStock_name(stock_name.getText());
long num = Long.valueOf(stock_num.getText());
sb.setStock_num(num);
Float pre = Float.valueOf(stock_pre.getText());
sb.setStock_pre(pre);
Float total = num*pre;
sb.setStock_total(total);
StockDB sdb = new StockDB();
int result = sdb.updateStock(sb);
if(result>0){
jOptionPane1.showMessageDialog(this, sb.getStock_name()+"股票信息更新成功");
clearText();
dt = new DefaultTableModel();
dt = setTable(dt,false);
table.setModel(dt);
}else{
jOptionPane1.showMessageDialog(this, sb.getStock_name()+"股票信息更新失败");
}
}else{
jOptionPane1.showMessageDialog(this, "请选择所要更新的股票信息!");
}
}
public void sort_pre_actionPerformed(ActionEvent e) {
dt = new DefaultTableModel();
dt = setTable(dt,true);
table.setModel(dt);
}
public void k_line_actionPerformed(ActionEvent e) {
if(stock_code.getText().length()!=0){
String code = stock_code.getText();
KLineFrame kf = new KLineFrame(code);
kf.setVisible(true);
}else{
jOptionPane1.showMessageDialog(this, "请选择所要查看K线图的股票信息!");
}
}
private DefaultTableModel setTable(DefaultTableModel dt,boolean flag){
ResultSet rs = null;
StockDB sdb = new StockDB();
if(flag){
rs = sdb.sortStock(sb);
}else{
rs = sdb.getResult(sb);
}
dt.addColumn("股票代码");
dt.addColumn("股票名称");
dt.addColumn("购入数量");
dt.addColumn("购入单价");
try {
while(rs.next()){
Vector newrow = new Vector();
newrow.addElement(rs.getString(1));
newrow.addElement(rs.getString(2));
newrow.addElement(rs.getInt(3));
newrow.addElement(rs.getFloat(4));
dt.addRow(newrow);
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
return dt;
}
public void clearText(){
stock_code.setEditable(true);
stock_name.setEditable(true);
stock_code.setText("");
stock_name.setText("");
stock_num.setText("");
stock_npre.setText("");
stock_pre.setText("");
stock_total.setText("");
stock_ntotal.setText("");
}
}
class InPanel_table_mouseAdapter extends MouseAdapter {
private InPanel adaptee;
InPanel_table_mouseAdapter(InPanel adaptee) {
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e) {
adaptee.table_mouseClicked(e);
}
}
class InPanel_clear_actionAdapter implements ActionListener {
private InPanel adaptee;
InPanel_clear_actionAdapter(InPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.clear_actionPerformed(e);
}
}
class InPanel_insert_actionAdapter implements ActionListener {
private InPanel adaptee;
InPanel_insert_actionAdapter(InPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.insert_actionPerformed(e);
}
}
class InPanel_delete_actionAdapter implements ActionListener {
private InPanel adaptee;
InPanel_delete_actionAdapter(InPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.delete_actionPerformed(e);
}
}
class InPanel_update_actionAdapter implements ActionListener {
private InPanel adaptee;
InPanel_update_actionAdapter(InPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.update_actionPerformed(e);
}
}
class InPanel_sort_pre_actionAdapter implements ActionListener {
private InPanel adaptee;
InPanel_sort_pre_actionAdapter(InPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.sort_pre_actionPerformed(e);
}
}
class InPanel_k_line_actionAdapter implements ActionListener {
private InPanel adaptee;
InPanel_k_line_actionAdapter(InPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.k_line_actionPerformed(e);
}
}
class MyTable extends JTable{
public boolean isCellEditable(int row,int col){
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -