wang2679958237 2016-01-16 14:56 采纳率: 15.8%
浏览 8134

java界面里怎么将从数据库中按条件查询的结果显示在界面里。。急求

AirSelectpage.java:
import javax.swing.*;

import java.awt.event.*;
import java.sql.*;
public class AirSelectpage extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID = -3695058594377827316L;
JLabel l;
JTextField t=new JTextField(15);
JButton jok;
JButton jBack;

String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url="jdbc:sqlserver://localhost:1433; DatabaseName=AirTicket";
String USER="sa";
String PASSWORD="123";
public void asPage(){
    JPanel p;
    p=new JPanel();
    l=new JLabel("请输入航班号:");
    jok=new JButton("确认");
    jBack=new JButton("返回");
    p.add(l);p.add(t);p.add(jok);p.add(jBack);
    add(p);
    setSize(600,400);
    setLocation(400,200);
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    jok.addActionListener(this);
    jBack.addActionListener(this);
}
private Connection con;
private Statement stmt;
private ResultSet rs;
public void actionPerformed(ActionEvent e){
    if(e.getSource()==jok){
        String airnumber=t.getText().trim();
        if(airnumber.equals("")){
            JOptionPane.showMessageDialog(this,"对不起,请输入航班号!","错误!",JOptionPane.ERROR_MESSAGE);
        }
        else{
            try{
                Class.forName(driverName);
                con=DriverManager.getConnection(url,USER,PASSWORD);
                String sql="select 旅客.航班号,座位号,姓名,旅客.票号,票价,起点,终点,起飞时间,到达时间 from 旅客,航班,机票 where 航班.航班号=旅客.航班号 and 旅客.票号=机票.票号 and 旅客.航班号='"+airnumber+"'";//执行的sql语句
                stmt=con.createStatement();
                rs=stmt.executeQuery(sql);
                if(rs.next()){
                        new AirInformation();                   }
                else{
                    JOptionPane.showMessageDialog(this,"航班号不存在,请重新输入!","错误!",JOptionPane.ERROR_MESSAGE);
                }
            }
            catch(ClassNotFoundException ex){
                ex.printStackTrace();
            }
            catch(SQLException ex){
                ex.printStackTrace();
            }
        }
    }
    if(e.getSource()==jBack){
        Welpage wel=new Welpage();
        wel.wPage(null);
        this.dispose();
    }
}

}

AirInformation.java:
import javax.swing.*;

import java.sql.*;
public class AirInformation extends JFrame{
/**
*
*/
private static final long serialVersionUID = -2888751890568230979L;
// 定义组件
private JScrollPane scpDemo;
private JTable tabDemo;
// 构造方法
public AirInformation() throws SQLException{
// 窗体的相关属性的定义
super("JTable数据绑定示例");
this.setSize(1200,900);
this.setLayout(null);
this.setLocation(100,50);
// 创建组件
this.scpDemo = new JScrollPane();
this.scpDemo.setBounds(10,50,1050,300);
// 将组件加入到窗体中
add(this.scpDemo);
// 显示窗体
this.setVisible(true);
try{
// 获得连接
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");}
catch(Exception e){}
Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=AirTicket","sa","123");
// 建立查询条件
String sql = "select 旅客.航班号,座位号,姓名,旅客.票号,票价,起点,终点,起飞时间,到达时间 from 旅客,航班,机票 where 航班.航班号=旅客.航班号 and 旅客.票号=机票.票号 and 旅客.航班号='A3001'";
PreparedStatement pstm = conn.prepareStatement(sql);
// 执行查询
ResultSet rs = pstm.executeQuery();
// 计算有多少条记录
int count = 0;
while(rs.next()){
count++;
}
rs=pstm.executeQuery();
// 将查询获得的记录数据,转换成适合生成JTable的数据形式
Object[][] info = new Object[count][9];
count = 0;
while(rs.next()){
info[count][0] = rs.getString("航班号");
info[count][1] = rs.getString("座位号");
info[count][2] = rs.getString("姓名");
info[count][3] = rs.getString("票号");
info[count][4] = Integer.valueOf(rs.getInt("票价"));
info[count][5] = rs.getString("起点");
info[count][6] = rs.getString("终点");
info[count][7] = rs.getTimestamp("起飞时间");
info[count][8] = rs.getTimestamp("到达时间");
count++;
}
// 定义表头
String[] title = {"航班号","座位号","姓名","票号","票价","起点","终点","起飞时间","到达时间"};
// 创建JTable
this.tabDemo = new JTable(info,title);
this.tabDemo.getTableHeader();
// 将JTable加入到带滚动条的面板中
this.scpDemo.getViewport().add(tabDemo);
}
}

当航班号为A3001  A3002。。。时,是可以显示出来的
当航班号为t.getText()时,就一片空白,什么都显示不了
  • 写回答

5条回答 默认 最新

  • wang2679958237 2016-01-16 15:00
    关注

    当航班号为A3001时
    当航班号为文本框数据时

    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗