import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import java.sql.*;
public class TeamInputJFrame extends JFrame
implements ActionListener,ListSelectionListener
{
private DataBaseOperation dboper; //操纵数据库的对象
private String table; //数据库中的表名
private String[] columnNames; //指定表中所有列的中文标题
private String list_column; //指定分类浏览依据的列
private String sort_column; //指定排序依据的列
private JList list_group; //列表框,显示分类列的不重复值
private JTable table_team; //表格组件,显示数据库中指定的内容
private DefaultTableModel tableModel; //默认表格模式
private JComboBox combobox_group; //组合框,选择组别
private JTextField text_team; //文本行,输入参赛队名
public TeamInputJFrame(DataBaseOperation dboper,String table,
String[] columnNames,String list_column,String sort_column) //构造方法,指定表名
{
this.dboper = dboper;
this.table = table;
this.columnNames = columnNames;
this.list_column = list_column;
this.sort_column = sort_column;
this.setSize(480,340); //窗口界面设计
this.setLocation(300,250);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
JSplitPane splitter_h = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);//水平分割窗格
this.add(splitter_h);
JSplitPane splitter_v = new JSplitPane(JSplitPane.VERTICAL_SPLIT); //垂直分割窗格
try{
String[] groupdata = dboper.selectDistinct(table,list_column); //获得指定列不重复的值
this.list_group = new JList(groupdata);
this.list_group.setSelectedIndex(0); //选中第1项
splitter_h.add(new JScrollPane(this.list_group));
this.list_group.addListSelectionListener(this); //注册选择事件监听器
splitter_h.add(splitter_v);
this.tableModel = new DefaultTableModel(columnNames,0); //默认表格模式
this.valueChanged(null);
this.table_team = new JTable(tableModel);
splitter_v.add(new JScrollPane(table_team));
}
catch(Exception e ){
e.printStackTrace();
}
splitter_v.add(inputJPanel());
this.setVisible(true);
}
private JPanel inputJPanel()
{
JPanel panel = new JPanel();
panel.add(new JLabel("组别"));
String[] groupdata = {"A","B","C","D","E","F","G","H"};
combobox_group = new JComboBox(groupdata);
panel.add(combobox_group);
panel.add(new JLabel("队名"));
text_team = new JTextField(10);
panel.add(text_team);
JButton button_add = new JButton("添加");
panel.add(button_add);
button_add.addActionListener(this);
return panel;
}
public void display(String columnValue)
{
String conditions="";
if(columnValue!=null&&!columnValue.equals("全部"))
conditions = this.list_column+"='"+columnValue+"'";
try{ //查询并显示指定组的数据结果集
dboper.select(this.table,conditions,sort_column,this.tableModel);
}
catch(SQLException sqle){
sqle.printStackTrace();
}
}
public void valueChanged(ListSelectionEvent e) //列表框中选择数据项是触发
{//在表中查询指定组的数据,将数据结果集显示在表格组件中
String selecteditem = (String)list_group.getSelectedValue();
if(selecteditem!=null)
display(selecteditem);
}
public void actionPerformed(ActionEvent e) //单击事件处理程序
{
if(e.getActionCommand()=="添加") //单击按钮时
{
String group1 =(String)combobox_group.getSelectedItem();
Object group1obj = combobox_group.getSelectedItem();
String team1 = text_team.getText();
if(team1.equals(""))
{
System.out.println("队名为空,不能添加.");
return;
}
try{
this.list_group.setSelectedValue(group1obj,true); //选中指定数据项
System.out.println(list_group.getSelectedIndex());
display(group1);
String sql = " SELECT COUNT(" +list_column+") FROM "+this.table;
sql +=" WHERE "+list_column+"='"+group1+"'";
int count = dboper.selectCount(sql);
if(count>=4)
{
System.out.println(group1+"组已有4个队,不能再添加。");
return;
}
sql = " SELECT COUNT("+list_column+") FROM "+this.table;
sql +=" WHERE "+list_column+"='"+group1+"'";
sql +=" AND team1='"+team1+"'";
System.out.println(sql);
count = dboper.selectCount(sql);
if(count>=1)
{
System.out.println(group1+"组已有"+team1+"队,不能再添加");
return;
}
sql =" INSERT INTO "+this.table+ " VALUES ('"; //表名
sql += group1+"','"+team1+"')"; //组别、队名列值"
int ok = dboper.dataUpdate(sql);
if(ok==1)
{
String[] groupdata=dboper.selectDistinct(table,list_column);
//获得指定列不重复的值
this.list_group.setListData(groupdata);
this.list_group.setSelectedValue((Object)group1,true);
display(group1);
}
}
catch(SQLException sqle){
sqle.printStackTrace();
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String driver ="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url="jdbc:sqlserver://localhost:1433;DatabaseName=WorldCup2006";
try{
DataBaseOperation dboper = new DataBaseOperation(driver,url,"sa","hwz216202");
String[] team_columnNames={"组别","球队" };
TeamInputJFrame team_input = new TeamInputJFrame(dboper,"Team",
team_columnNames,"group1","group1");
team_input.setTitle("第18届世界足球杯足球赛 参赛队");
}
catch(Exception e){
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Java足球世界杯
共97个文件
class:90个
java:2个
classpath:1个
需积分: 35 5 下载量 38 浏览量
2008-07-25
01:29:57
上传
评论
收藏 223KB RAR 举报
温馨提示
要个5分就够够了<br>数据库问我要吧<br>
资源推荐
资源详情
资源评论
收起资源包目录
WorldCup2006.rar (97个子文件)
WorldCup2006
META-INF
zigbert.rsa 3KB
manifest.mf 15KB
zigbert.sf 15KB
com
microsoft
sqlserver
jdbc
TypeInfo.class 4KB
FetchBuffer.class 418B
SQLServerException.class 4KB
SQLServerXAConnection.class 2KB
SQLServerResource_zh_TW.class 12KB
SQLServerParameterMetaData.class 7KB
ClientFetchBuffer.class 1KB
DTV$SendByRPCOp.class 7KB
SQLServerResource_sv.class 13KB
SQLServerBlobInputStream.class 2KB
SQLServerResource_it.class 14KB
SQLServerClob.class 4KB
SQLJdbcVersion.class 296B
StreamDone.class 1KB
IOBuffer.class 21KB
AppDTVImpl$SetValueOp.class 4KB
StaticServerCursor.class 1KB
SQLServerConnection.class 22KB
SQLServerDriver.class 5KB
SQLCollation.class 5KB
DTVImpl.class 761B
SQLServerXADataSource.class 2KB
InputStreamArgs.class 305B
ScrollableDynamicServerCursor.class 2KB
SQLServerConnectionSecurityManager.class 545B
StreamRetValue.class 911B
SQLServerBlobOutputStream.class 817B
StreamPacket.class 93B
SQLServerClobCharacterReader.class 2KB
ServerDTVImpl.class 8KB
StreamColumns.class 2KB
ParameterUtils.class 2KB
SQLServerClobAsciiOutputStream.class 979B
TdsTransactionDescriptor.class 586B
ForwardOnlyDynamicServerCursor.class 2KB
SQLServerBlob.class 3KB
TDSVersion.class 340B
ResultSetCursor.class 862B
SQLServerCallableStatement.class 15KB
SQLServerStatement.class 22KB
SQLServerResource_ja.class 16KB
SQLServerResource_fr.class 15KB
SQLServerDatabaseMetaData.class 23KB
PLPXMLInputStream.class 2KB
Column.class 4KB
StreamError.class 1KB
Util.class 12KB
KeysetServerCursor.class 1KB
PositionedCursor.class 2KB
SLocaleMapItem.class 321B
XAReturnValue.class 200B
AppDTVImpl.class 3KB
XMLTDSHeader.class 1KB
DataType.class 641B
SQLServerResource_ko.class 15KB
SQLServerPreparedStatement.class 12KB
SQLServerResource_de.class 14KB
Parameter.class 3KB
SQLServerResultSetMetaData.class 4KB
DataTypes.class 9KB
StreamUnrecognized.class 258B
DDC.class 9KB
SQLServerResource_zh_CN.class 12KB
SQLServerResource.class 13KB
DTV.class 6KB
SQLServerSavepoint.class 1KB
ClientSideCursor.class 1KB
SQLServerDataSource.class 8KB
XidImpl.class 465B
SQLServerXAResource.class 9KB
SQLServerResultSet.class 19KB
Parameter$GetTypeDefinitionOp.class 4KB
JDBCCallSyntaxTranslator.class 2KB
SQLServerDataSourceObjectFactory.class 1KB
StreamLoginAck.class 891B
DBComms.class 15KB
ServerFetchBuffer.class 4KB
SQLServerClobAsciiInputStream.class 2KB
DataTypeFilteringDTVImpl.class 2KB
DTVExecuteOp.class 1KB
SQLServerPooledConnection.class 5KB
PacketRequestor.class 536B
SQLServerConnection$SQLServerConnectionThread.class 1KB
PLPInputStream.class 5KB
SQLServerResource_es.class 14KB
SQLServerConnectionPoolDataSource.class 2KB
SQLServerClobWriter.class 1KB
UDTTDSHeader.class 2KB
DataBaseOperation.class 5KB
.classpath 226B
TeamInputJFrame.class 6KB
TeamInputJFrame.java 6KB
.project 388B
DataBaseOperation.java 5KB
共 97 条
- 1
资源评论
清水幽心
- 粉丝: 0
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功