SE做学生成绩管理系统的问题
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、首先你把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被定义了变量。以上都是错误修改后的代码。