package com.jdhr.view;import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;import com.jdhr.model.HeroModel;
import com.jdhr.model.UserModel;public class MainWindows extends JFrame implements ActionListener,MouseListener
{
JMenu jm1, jm2, jm3, jm4, jm5, jm6, jm7, jm8;
JMenuItem jmi1, jmi2, jmi3;
JMenuBar jmb;
JPanel jp1, jp2, jp3,jp4;
JLabel jl1, jl2,jl3,jl4,jp5;
JTextField jtf;
JScrollPane jsp1;
JSplitPane jsp;
JTable jt;
JButton jb1,jb2,jb3,jb4;
Cursor cs;
CardLayout cl;
Font font = new Font("微软雅黑", Font.PLAIN, 36);
Font font2 = new Font("微软雅黑", Font.PLAIN, 14);
int w = Toolkit.getDefaultToolkit().getScreenSize().width;
int h = Toolkit.getDefaultToolkit().getScreenSize().height; float weight=0.2f; public static void main(String[] args)
{
new MainWindows();
} // 菜单栏
public void MainMenu()
{
jm1 = new JMenu("国家机构");
jm1.setFont(font2);
jmi1 = new JMenuItem("新增(N)");
jmi1.setFont(font2);
jmi2 = new JMenuItem("合并(U)");
jmi2.setFont(font2);
jmi3 = new JMenuItem("撤销(R)");
jmi3.setFont(font2);
jm1.add(jmi1);
jm1.add(jmi2);
jm1.add(jmi3);
jm2 = new JMenu("人员管理");
jm2.setFont(font2);
jm3 = new JMenu("合同管理");
jm3.setFont(font2);
jm4 = new JMenu("人事异动");
jm4.setFont(font2);
jm5 = new JMenu("培训管理");
jm5.setFont(font2);
jm6 = new JMenu("绩效管理");
jm6.setFont(font2);
jm7 = new JMenu("考勤休假");
jm7.setFont(font2);
jm8 = new JMenu("薪酬管理");
jm8.setFont(font2); jmb = new JMenuBar(); jmb.add(jm1);
jmb.add(jm2);
jmb.add(jm3);
jmb.add(jm4);
jmb.add(jm5);
jmb.add(jm6);
jmb.add(jm7);
jmb.add(jm8);
this.setJMenuBar(jmb);
} // 主面板
public void MainPanel()
{
cs = new Cursor(Cursor.HAND_CURSOR);
cl = new CardLayout(); jp1 = new JPanel();
jp1.setLayout(new GridLayout(5, 1));
jl1 = new JLabel("国家管理",SwingConstants.CENTER);
jl1.setCursor(cs);
jl1.setEnabled(false);
jl1.addMouseListener(this); jl2 = new JLabel("人员管理",SwingConstants.CENTER);
jl2.setCursor(cs);
jl2.setEnabled(false);
jl2.addMouseListener(this); jp1.add(jl1);
jp1.add(jl2);
Icon icon = new ImageIcon("/image/htly.jpg");
jl3 = new JLabel(icon,SwingConstants.CENTER);
jp3 = new JPanel(cl);
HeroPanel ep = new HeroPanel();
NationPanel np = new NationPanel();
jp3.add(jl3,"1");
jp3.add(ep,"2");
jp3.add(np,"3");
jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jp1, jp3);
jsp.setDividerSize(5);
this.add(jsp);
} // 主方法
public MainWindows()
{
this.MainPanel();
this.MainMenu();
this.setTitle("灰太郎管理系统"); Image image = Toolkit.getDefaultToolkit().createImage("/image/htl.jpg");
this.setIconImage(image);
this.setSize(w/2 , h /2 - 28);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
} @Override
public void actionPerformed(ActionEvent e)
{ } @Override
public void mouseClicked(MouseEvent e)
{
if (e.getSource() == jl1)
{ cl.show(jp3, "3");
}
else if (e.getSource() == jl2)
{ cl.show(jp3, "2");
} } @Override
public void mouseEntered(MouseEvent e)
{
if (e.getSource() == jl1)
{
jl1.setEnabled(true); }
else if (e.getSource() == jl2)
{
jl2.setEnabled(true);
} } @Override
public void mouseExited(MouseEvent e)
{
if (e.getSource() == jl1)
{
jl1.setEnabled(false);
jl1.setCursor(cs);
}
else if (e.getSource() == jl2)
{
jl2.setEnabled(false);
jl2.setCursor(cs);
} } @Override
public void mousePressed(MouseEvent e)
{
// TODO Auto-generated method stub } @Override
public void mouseReleased(MouseEvent e)
{
// TODO Auto-generated method stub }}package com.jdhr.view;
import java.awt.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.*;
import javax.swing.table.*;import com.jdhr.model.HeroModel;
public class NationPanel extends JPanel implements ActionListener
{
JPanel jp1,jp2,jp3,jp4,jp5;
JLabel jl1,jl2;
JTextField jtf;
JButton jb1,jb2,jb3,jb4,jb5;
JTable jtable;
JScrollPane jsp;
HeroModel hm; public static void main(String[] args)
{
}
public NationPanel()
{
// 最上边
jp1 = new JPanel();
jl1 = new JLabel("请输入您要查询的国家名称:");
jtf = new JTextField(20);
jb5 = new JButton("查询");
jb5.addActionListener(this);
jp1.add(jl1);
jp1.add(jtf);
jp1.add(jb5);
// 中间
jp2 = new JPanel(new BorderLayout());
hm = new HeroModel();
String sql = "select * from nation order by naid";
String[] pars = {};
hm = new HeroModel();
hm.queryHeros(sql, pars);
jtable= new JTable(hm);
jsp = new JScrollPane(jtable);
jp2.add(jsp);
// 最下边
jp3 = new JPanel(new FlowLayout(FlowLayout.LEFT));
jp4 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
jl2 = new JLabel("总共有***行数据");
jp3.add(jl2);
jb1 = new JButton("详细信息");
jb2 = new JButton("添加");
jb2.addActionListener(this);
jb3 = new JButton("修改");
jb4 = new JButton("删除");
jp4.add(jb1);
jp4.add(jb2);
jp4.add(jb3);
jp4.add(jb4);
jp5 = new JPanel(new BorderLayout());
jp5.add(jp3,"West");
jp5.add(jp4,"East");
this.setLayout(new BorderLayout());
this.setVisible(true);
this.add(jp1,"North");
this.add(jp2,"Center");
this.add(jp5,"South");
}
@Override
public void actionPerformed(ActionEvent e)
{
// TODO Auto-generated method stub
if(e.getSource()==jb5)
{
String name = this.jtf.getText().trim();
String sql = "select * from nation where naname = ?";
String[] pars = {name};
hm = new HeroModel();
hm.queryHeros(sql, pars);
jtable.setModel(hm);
}
if(e.getSource() == jb2)
{
AddNation an = new AddNation();
}
}
}package com.jdhr.view;import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;import com.jdhr.model.HeroModel;public class AddNation extends JFrame implements ActionListener
{ JLabel jl1, jl2, jl3;
JTextField jtf1, jtf2, jtf3;
JButton jb1, jb2;
JPanel jp1, jp2, jp3;// public static void main(String[] args)
// {
// new AddNation();
//
// } public AddNation()
{
jl1 = new JLabel("国家编号: ");
jl2 = new JLabel("国家名称: ");
jl3 = new JLabel("国都地址: "); jtf1 = new JTextField(20);
jtf2 = new JTextField(20);
jtf3 = new JTextField(20); jb1 = new JButton("添加");
jb1.addActionListener(this);
jb2 = new JButton("取消");
jb2.addActionListener(this); jp1 = new JPanel(new GridLayout(3, 1));
jp2 = new JPanel(new GridLayout(3, 1));
jp3 = new JPanel(); jp1.add(jl1);
jp1.add(jl2);
jp1.add(jl3); jp2.add(jtf1);
jp2.add(jtf2);
jp2.add(jtf3); jp3.add(jb1);
jp3.add(jb2); this.add(jp1, "West");
this.add(jp2, "Center");
this.add(jp3, "South");
this.setTitle("添加国家");
this.setSize(300, 160);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } @Override
public void actionPerformed(ActionEvent e)
{
// 添加
if (e.getSource() == jb1)
{
HeroModel hm = new HeroModel();
String sql = "insert into nation values(?,?,?)";
String[] pars = { jtf1.getText().trim(), jtf2.getText().trim(),
jtf3.getText().trim() };
if (!hm.Updein(sql, pars))
{
JOptionPane.showConfirmDialog(this, "添加失败");
} this.dispose();
}
if (e.getSource() == jb2)
{
this.dispose();
} }}
通过调用AddNation()这个界面数据之后,不能在JTable中实时地显示出来,请问该怎么办???
import java.awt.CardLayout;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;import com.jdhr.model.HeroModel;
import com.jdhr.model.UserModel;public class MainWindows extends JFrame implements ActionListener,MouseListener
{
JMenu jm1, jm2, jm3, jm4, jm5, jm6, jm7, jm8;
JMenuItem jmi1, jmi2, jmi3;
JMenuBar jmb;
JPanel jp1, jp2, jp3,jp4;
JLabel jl1, jl2,jl3,jl4,jp5;
JTextField jtf;
JScrollPane jsp1;
JSplitPane jsp;
JTable jt;
JButton jb1,jb2,jb3,jb4;
Cursor cs;
CardLayout cl;
Font font = new Font("微软雅黑", Font.PLAIN, 36);
Font font2 = new Font("微软雅黑", Font.PLAIN, 14);
int w = Toolkit.getDefaultToolkit().getScreenSize().width;
int h = Toolkit.getDefaultToolkit().getScreenSize().height; float weight=0.2f; public static void main(String[] args)
{
new MainWindows();
} // 菜单栏
public void MainMenu()
{
jm1 = new JMenu("国家机构");
jm1.setFont(font2);
jmi1 = new JMenuItem("新增(N)");
jmi1.setFont(font2);
jmi2 = new JMenuItem("合并(U)");
jmi2.setFont(font2);
jmi3 = new JMenuItem("撤销(R)");
jmi3.setFont(font2);
jm1.add(jmi1);
jm1.add(jmi2);
jm1.add(jmi3);
jm2 = new JMenu("人员管理");
jm2.setFont(font2);
jm3 = new JMenu("合同管理");
jm3.setFont(font2);
jm4 = new JMenu("人事异动");
jm4.setFont(font2);
jm5 = new JMenu("培训管理");
jm5.setFont(font2);
jm6 = new JMenu("绩效管理");
jm6.setFont(font2);
jm7 = new JMenu("考勤休假");
jm7.setFont(font2);
jm8 = new JMenu("薪酬管理");
jm8.setFont(font2); jmb = new JMenuBar(); jmb.add(jm1);
jmb.add(jm2);
jmb.add(jm3);
jmb.add(jm4);
jmb.add(jm5);
jmb.add(jm6);
jmb.add(jm7);
jmb.add(jm8);
this.setJMenuBar(jmb);
} // 主面板
public void MainPanel()
{
cs = new Cursor(Cursor.HAND_CURSOR);
cl = new CardLayout(); jp1 = new JPanel();
jp1.setLayout(new GridLayout(5, 1));
jl1 = new JLabel("国家管理",SwingConstants.CENTER);
jl1.setCursor(cs);
jl1.setEnabled(false);
jl1.addMouseListener(this); jl2 = new JLabel("人员管理",SwingConstants.CENTER);
jl2.setCursor(cs);
jl2.setEnabled(false);
jl2.addMouseListener(this); jp1.add(jl1);
jp1.add(jl2);
Icon icon = new ImageIcon("/image/htly.jpg");
jl3 = new JLabel(icon,SwingConstants.CENTER);
jp3 = new JPanel(cl);
HeroPanel ep = new HeroPanel();
NationPanel np = new NationPanel();
jp3.add(jl3,"1");
jp3.add(ep,"2");
jp3.add(np,"3");
jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jp1, jp3);
jsp.setDividerSize(5);
this.add(jsp);
} // 主方法
public MainWindows()
{
this.MainPanel();
this.MainMenu();
this.setTitle("灰太郎管理系统"); Image image = Toolkit.getDefaultToolkit().createImage("/image/htl.jpg");
this.setIconImage(image);
this.setSize(w/2 , h /2 - 28);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
} @Override
public void actionPerformed(ActionEvent e)
{ } @Override
public void mouseClicked(MouseEvent e)
{
if (e.getSource() == jl1)
{ cl.show(jp3, "3");
}
else if (e.getSource() == jl2)
{ cl.show(jp3, "2");
} } @Override
public void mouseEntered(MouseEvent e)
{
if (e.getSource() == jl1)
{
jl1.setEnabled(true); }
else if (e.getSource() == jl2)
{
jl2.setEnabled(true);
} } @Override
public void mouseExited(MouseEvent e)
{
if (e.getSource() == jl1)
{
jl1.setEnabled(false);
jl1.setCursor(cs);
}
else if (e.getSource() == jl2)
{
jl2.setEnabled(false);
jl2.setCursor(cs);
} } @Override
public void mousePressed(MouseEvent e)
{
// TODO Auto-generated method stub } @Override
public void mouseReleased(MouseEvent e)
{
// TODO Auto-generated method stub }}package com.jdhr.view;
import java.awt.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.*;
import javax.swing.table.*;import com.jdhr.model.HeroModel;
public class NationPanel extends JPanel implements ActionListener
{
JPanel jp1,jp2,jp3,jp4,jp5;
JLabel jl1,jl2;
JTextField jtf;
JButton jb1,jb2,jb3,jb4,jb5;
JTable jtable;
JScrollPane jsp;
HeroModel hm; public static void main(String[] args)
{
}
public NationPanel()
{
// 最上边
jp1 = new JPanel();
jl1 = new JLabel("请输入您要查询的国家名称:");
jtf = new JTextField(20);
jb5 = new JButton("查询");
jb5.addActionListener(this);
jp1.add(jl1);
jp1.add(jtf);
jp1.add(jb5);
// 中间
jp2 = new JPanel(new BorderLayout());
hm = new HeroModel();
String sql = "select * from nation order by naid";
String[] pars = {};
hm = new HeroModel();
hm.queryHeros(sql, pars);
jtable= new JTable(hm);
jsp = new JScrollPane(jtable);
jp2.add(jsp);
// 最下边
jp3 = new JPanel(new FlowLayout(FlowLayout.LEFT));
jp4 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
jl2 = new JLabel("总共有***行数据");
jp3.add(jl2);
jb1 = new JButton("详细信息");
jb2 = new JButton("添加");
jb2.addActionListener(this);
jb3 = new JButton("修改");
jb4 = new JButton("删除");
jp4.add(jb1);
jp4.add(jb2);
jp4.add(jb3);
jp4.add(jb4);
jp5 = new JPanel(new BorderLayout());
jp5.add(jp3,"West");
jp5.add(jp4,"East");
this.setLayout(new BorderLayout());
this.setVisible(true);
this.add(jp1,"North");
this.add(jp2,"Center");
this.add(jp5,"South");
}
@Override
public void actionPerformed(ActionEvent e)
{
// TODO Auto-generated method stub
if(e.getSource()==jb5)
{
String name = this.jtf.getText().trim();
String sql = "select * from nation where naname = ?";
String[] pars = {name};
hm = new HeroModel();
hm.queryHeros(sql, pars);
jtable.setModel(hm);
}
if(e.getSource() == jb2)
{
AddNation an = new AddNation();
}
}
}package com.jdhr.view;import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;import com.jdhr.model.HeroModel;public class AddNation extends JFrame implements ActionListener
{ JLabel jl1, jl2, jl3;
JTextField jtf1, jtf2, jtf3;
JButton jb1, jb2;
JPanel jp1, jp2, jp3;// public static void main(String[] args)
// {
// new AddNation();
//
// } public AddNation()
{
jl1 = new JLabel("国家编号: ");
jl2 = new JLabel("国家名称: ");
jl3 = new JLabel("国都地址: "); jtf1 = new JTextField(20);
jtf2 = new JTextField(20);
jtf3 = new JTextField(20); jb1 = new JButton("添加");
jb1.addActionListener(this);
jb2 = new JButton("取消");
jb2.addActionListener(this); jp1 = new JPanel(new GridLayout(3, 1));
jp2 = new JPanel(new GridLayout(3, 1));
jp3 = new JPanel(); jp1.add(jl1);
jp1.add(jl2);
jp1.add(jl3); jp2.add(jtf1);
jp2.add(jtf2);
jp2.add(jtf3); jp3.add(jb1);
jp3.add(jb2); this.add(jp1, "West");
this.add(jp2, "Center");
this.add(jp3, "South");
this.setTitle("添加国家");
this.setSize(300, 160);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } @Override
public void actionPerformed(ActionEvent e)
{
// 添加
if (e.getSource() == jb1)
{
HeroModel hm = new HeroModel();
String sql = "insert into nation values(?,?,?)";
String[] pars = { jtf1.getText().trim(), jtf2.getText().trim(),
jtf3.getText().trim() };
if (!hm.Updein(sql, pars))
{
JOptionPane.showConfirmDialog(this, "添加失败");
} this.dispose();
}
if (e.getSource() == jb2)
{
this.dispose();
} }}
通过调用AddNation()这个界面数据之后,不能在JTable中实时地显示出来,请问该怎么办???
import java.sql.ResultSetMetaData;
import java.util.Vector;import javax.swing.table.AbstractTableModel;import com.jdhr.db.SqlHelper;public class HeroModel extends AbstractTableModel
{ Vector rowDate,columnName;
public static void main(String[] args)
{
// TODO Auto-generated method stub }
public void queryHeros(String sql,String[] pars)
{
columnName = new Vector();
rowDate = new Vector();
SqlHelper sh = null;
sh = new SqlHelper();
ResultSet rs = sh.query(sql, pars);
try
{
ResultSetMetaData rsm = rs.getMetaData();
for(int i=0; i<rsm.getColumnCount();i++)
{
columnName.add(rsm.getColumnName(i+1));
}
while(rs.next())
{
Vector hang = new Vector();
for(int i=0;i<rsm.getColumnCount();i++)
{
hang.add(rs.getString(i+1));
}
rowDate.add(hang);
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
sh.close();
}
}
public boolean Updein(String sql,String[] pars)
{
SqlHelper sh = new SqlHelper();
return sh.Updein(sql, pars);
}
@Override
public int getColumnCount()
{
// TODO Auto-generated method stub
return this.columnName.size();
}
@Override
public int getRowCount()
{
// TODO Auto-generated method stub
return this.rowDate.size();
}
@Override
public Object getValueAt(int arg0, int arg1)
{
// TODO Auto-generated method stub
return ((Vector)this.rowDate.get(arg0)).get(arg1);
}
@Override
public String getColumnName(int column)
{
// TODO Auto-generated method stub
return (String)this.columnName.get(column);
}}
import java.util.*;import javax.swing.event.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.*;import com.jdhr.db.*;public class UserModel
{
public String checkUser(String id, String p)
{
String job = "";
SqlHelper sh = null;
try
{
String sql = "select heros.herojob from heros,login where heros.heroid=login.heroid and login.heroid= ? and login.password= ?";
String[] pars = {id,p};
sh = new SqlHelper();
ResultSet rs = sh.query(sql, pars);
if (rs.next())
{
job = rs.getString(1);
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
sh.close();
}
return job;
}
}
{
JMenu jm1, jm2, jm3, jm4, jm5, jm6, jm7, jm8;
JMenuItem jmi1, jmi2, jmi3;
JMenuBar jmb;
JPanel jp1, jp2, jp3,jp4;
JLabel jl1, jl2,jl3,jl4,jp5;
JTextField jtf;
JScrollPane jsp1;
JSplitPane jsp;
JTable jt;
JButton jb1,jb2,jb3,jb4;
Cursor cs;
CardLayout cl;
Font font = new Font("微软雅黑", Font.PLAIN, 36);
Font font2 = new Font("微软雅黑", Font.PLAIN, 14);
int w = Toolkit.getDefaultToolkit().getScreenSize().width;
int h = Toolkit.getDefaultToolkit().getScreenSize().height; float weight=0.2f; public static void main(String[] args)
{
new MainWindows();
} // 菜单栏
public void MainMenu()
{
jm1 = new JMenu("国家机构");
jm1.setFont(font2);
jmi1 = new JMenuItem("新增(N)");
jmi1.setFont(font2);
jmi2 = new JMenuItem("合并(U)");
jmi2.setFont(font2);
jmi3 = new JMenuItem("撤销(R)");
jmi3.setFont(font2);
jm1.add(jmi1);
jm1.add(jmi2);
jm1.add(jmi3);
jm2 = new JMenu("人员管理");
jm2.setFont(font2);
jm3 = new JMenu("合同管理");
jm3.setFont(font2);
jm4 = new JMenu("人事异动");
jm4.setFont(font2);
jm5 = new JMenu("培训管理");
jm5.setFont(font2);
jm6 = new JMenu("绩效管理");
jm6.setFont(font2);
jm7 = new JMenu("考勤休假");
jm7.setFont(font2);
jm8 = new JMenu("薪酬管理");
jm8.setFont(font2); jmb = new JMenuBar(); jmb.add(jm1);
jmb.add(jm2);
jmb.add(jm3);
jmb.add(jm4);
jmb.add(jm5);
jmb.add(jm6);
jmb.add(jm7);
jmb.add(jm8);
this.setJMenuBar(jmb);
} // 主面板
public void MainPanel()
{
cs = new Cursor(Cursor.HAND_CURSOR);
cl = new CardLayout(); jp1 = new JPanel();
jp1.setLayout(new GridLayout(5, 1));
jl1 = new JLabel("国家管理",SwingConstants.CENTER);
jl1.setCursor(cs);
jl1.setEnabled(false);
jl1.addMouseListener(this); jl2 = new JLabel("人员管理",SwingConstants.CENTER);
jl2.setCursor(cs);
jl2.setEnabled(false);
jl2.addMouseListener(this); jp1.add(jl1);
jp1.add(jl2);
Icon icon = new ImageIcon("/image/htly.jpg");
jl3 = new JLabel(icon,SwingConstants.CENTER);
jp3 = new JPanel(cl);
// HeroPanel ep = new HeroPanel();
NationPanel np = new NationPanel();
jp3.add(jl3,"1");
// jp3.add(ep,"2");
jp3.add(np,"3");
jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jp1, jp3);
jsp.setDividerSize(5);
this.add(jsp);
} // 主方法
public MainWindows()
{
this.MainPanel();
this.MainMenu();
this.setTitle("灰太郎管理系统"); Image image = Toolkit.getDefaultToolkit().createImage("/image/htl.jpg");
this.setIconImage(image);
this.setSize(w/2 , h /2 - 28);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
} @Override
public void actionPerformed(ActionEvent e)
{ } @Override
public void mouseClicked(MouseEvent e)
{
if (e.getSource() == jl1)
{ cl.show(jp3, "3");
}
else if (e.getSource() == jl2)
{ cl.show(jp3, "2");
} } @Override
public void mouseEntered(MouseEvent e)
{
if (e.getSource() == jl1)
{
jl1.setEnabled(true); }
else if (e.getSource() == jl2)
{
jl2.setEnabled(true);
} } @Override
public void mouseExited(MouseEvent e)
{
if (e.getSource() == jl1)
{
jl1.setEnabled(false);
jl1.setCursor(cs);
}
else if (e.getSource() == jl2)
{
jl2.setEnabled(false);
jl2.setCursor(cs);
} } @Override
public void mousePressed(MouseEvent e)
{
// TODO Auto-generated method stub } @Override
public void mouseReleased(MouseEvent e)
{
// TODO Auto-generated method stub }}
public class AddNation extends JFrame implements ActionListener
{
HeroModel dataModel=null;
JLabel jl1, jl2, jl3;
JTextField jtf1, jtf2, jtf3;
JButton jb1, jb2;
JPanel jp1, jp2, jp3; public static void main(String[] args)
{
// new AddNation(); } public AddNation(HeroModel hm)
{
dataModel=hm;
jl1 = new JLabel("国家编号: ");
jl2 = new JLabel("国家名称: ");
jl3 = new JLabel("国都地址: "); jtf1 = new JTextField(20);
jtf2 = new JTextField(20);
jtf3 = new JTextField(20); jb1 = new JButton("添加");
jb1.addActionListener(this);
jb2 = new JButton("取消");
jb2.addActionListener(this); jp1 = new JPanel(new GridLayout(3, 1));
jp2 = new JPanel(new GridLayout(3, 1));
jp3 = new JPanel(); jp1.add(jl1);
jp1.add(jl2);
jp1.add(jl3); jp2.add(jtf1);
jp2.add(jtf2);
jp2.add(jtf3); jp3.add(jb1);
jp3.add(jb2); this.add(jp1, "West");
this.add(jp2, "Center");
this.add(jp3, "South");
this.setTitle("添加国家");
this.setSize(300, 160);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setVisible(true);
} @Override
public void actionPerformed(ActionEvent e)
{
// 添加
if (e.getSource() == jb1)
{
String str1=jtf1.getText().trim();
String str2=jtf2.getText().trim();
String str3=jtf3.getText().trim();
dataModel.addRow(str1, str2, str3);
// HeroModel hm = new HeroModel();
// String sql = "insert into nation values(?,?,?)";
// String[] pars = { jtf1.getText().trim(), jtf2.getText().trim(),
// jtf3.getText().trim() };
// if (!hm.Updein(sql, pars))
// {
// JOptionPane.showConfirmDialog(this, "添加失败");
// } this.dispose();
}
if (e.getSource() == jb2)
{
this.dispose();
} }}
public class HeroModel extends AbstractTableModel { Vector<Vector> rowDate; //负责存储jtable模型当中的数据值 ,包含的元素也是Vector
//这种用Vector不怎么推荐用
Vector<String> columnName;//负责维护jtable的列名称
public HeroModel(){
columnName = new Vector<String>();
columnName.add("序号");
columnName.add("名称");
columnName.add("值");
rowDate = new Vector<Vector>();
//这里我自己添加几个数据,以为SqlHelper连接的表不清楚
for(int i=0;i<5;i++){
Vector<String> v=new Vector<String>();
v.add("序号"+i);
v.add("名称"+i);
v.add("值"+i);
rowDate.add(v);
}
} public static void main(String[] args) {
// TODO Auto-generated method stub } public void queryHeros(String sql, String[] pars) {
// SqlHelper sh = null;
// sh = new SqlHelper();
// ResultSet rs = sh.query(sql, pars);
// try {
// ResultSetMetaData rsm = rs.getMetaData();
// for (int i = 0; i < rsm.getColumnCount(); i++) {
// columnName.add(rsm.getColumnName(i + 1));
// }
// while (rs.next()) {
// Vector hang = new Vector();
// for (int i = 0; i < rsm.getColumnCount(); i++) {
// hang.add(rs.getString(i + 1));
// }
// rowDate.add(hang);
//
// }
// } catch (Exception e) {
// e.printStackTrace();
// } finally {
//// sh.close();
// }
} public boolean Updein(String sql, String[] pars) {
// SqlHelper sh = new SqlHelper();
// return sh.Updein(sql, pars);
return true; }
/**
* 添加一行记录,这里需要根据自己需要实现,这是个实例
* @param str1
* @param str2
* @param str3
* @return
*/
public boolean addRow(String str1,String str2,String str3){
boolean result=false;
try{
Vector<String> v=new Vector<String>();
v.add(str1);
v.add(str2);
v.add(str3);
if(rowDate==null){
rowDate=new Vector<Vector>();
}
rowDate.add(v);
this.fireTableRowsInserted(getRowCount(), getColumnCount()+3);
result=true;
}catch(Exception e){
e.printStackTrace();
}
return result;
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
// System.out.println("一共有列数:"+columnName.size());
return this.columnName.size();
} @Override
public int getRowCount() {
// TODO Auto-generated method stub
// System.out.println("一共有行数:"+rowDate.size());
return this.rowDate.size();
} @Override
public Object getValueAt(int arg0, int arg1) {
// TODO Auto-generated method stub
return (this.rowDate.get(arg0)).get(arg1);
} @Override
public String getColumnName(int column) {
// TODO Auto-generated method stub
return this.columnName.get(column);
}}
我主要做的就是在jtable的模型层添加了addRow()的一个实例方法,当添加数据之后,调用模型层的addRow()方法,这样就能更新jtable。对于修改和删除数据我没有实现,你照着葫芦画瓢吧。