package com.y541028105;
import javax.swing.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;public class Info extends JFrame {
private static final LayoutManager BorderLayout = null;
//rowData 存放行数据 columnNames 存放列名
Vector rowData,columnNames;
BorderLayout bl = new BorderLayout();
JPanel jp1,jp2,jp3;
JLabel jl;
JTextField jtf1;
JButton jb1,jb2,jb3,jb4;
JTable jt;
JScrollPane jsp;

public Info(){



jp1 = new JPanel();
jl = new JLabel("用户名");
jtf1 = new JTextField(10);
jb1 = new JButton("查询");
jp1.add(jl);
jp1.add(jtf1);
jp1.add(jb1);


jp3 = new JPanel();
jb2 = new JButton("添加");
jb3 = new JButton("修改");
jb4 = new JButton("删除");
jp3.add(jb2);
jp3.add(jb3);
jp3.add(jb4);



//换到myeclipse算了,你这个我还真没看出啥问题

jp2   = new JPanel();//要设置他的大小和位置
this.setLayout(bl);
this.add(jp1,"NORTH");
this.add(jp3,"SOUTH");

this.setSize(400,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



//设置列名
columnNames = new Vector();
columnNames.add("学号");
columnNames.add("姓名");
columnNames.add("性别");
columnNames.add("生日");
columnNames.add("总分");
columnNames.add("班级");

//设置行

rowData = new Vector();


 try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // (1)创建与数据库的连接
 Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=student3", "sa","123456");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from student");
while (rs.next()) {

Vector hang = new Vector();
hang.add(rs.getString("sno"));
hang.add(rs.getString("sname"));
hang.add(rs.getString("ssex"));
hang.add(rs.getString("sbirthday"));
hang.add(rs.getString("sscore"));
hang.add(rs.getString("classno"));

rowData.add(hang);

}



} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
jt = new JTable(rowData,columnNames);
jsp = new JScrollPane(jt);
jsp.setSize(100, 100);
jp2.add(jsp);

this.add(jp2,"CENTER");//你的jp2还没有new肯定报错
}
//你还要改布局。该了就好了jframe默认的是flewlaayout不得行的  ,所以你的button看不到了,你多去看看布局,太烂了,其他没啥了

public static void main(String[] args) {

new Info().setVisible(true);


}
}
你们看看我的组织存在什么问题 显示不出来。求大神 帮助。

解决方案 »

  1.   

    1、首先你把private static final LayoutManager BorderLayout = null;定义给删了,定义的变量还是属性名称。
    2、修改"CENTER",哪个语言有这么高级能编译英文意思而生成效果?
    修改后的代码:this.add(jp2,BorderLayout.CENTER);//你的jp2还没有new肯定报错
    同样需要修改成:this.add(jp1,BorderLayout.NORTH);
                  this.add(jp3,BorderLayout.SOUTH);
    先了解一下布局。BorderLayout被定义了变量。以上都是错误修改后的代码。
      

  2.   

    我再问个问题 大哥。
    怎么让下一个Frame出来的时候把当前的Frame关掉呢?
                       add(login_clew);
            login_clew.setBounds(160,120,200,30);
            login_clew.setText("登陆成功!");
           
    这上面三句话显示了之后 马上跳转到下一个frame里面 但是前面的那个没关掉?
            
            new Info().setVisible(true);
    这里该添加一句什么?
      

  3.   

    GridBagLayout应该可以随心设置一个较好的布局
      

  4.   


    这些天忙于项目,没时间上csdn.调用的新窗口 frame=new 调用的新窗口();
    ...........
    frame.setVisible(true);//调用
    this.dispose();//关闭当前窗口
    this.setVisible(false);//释放资源。