首页 新闻 会员 周边

求解怎么弄这表格弄成与界面同宽

0
[待解决问题]

package 来访管理;
import javax.swing.*;
import javax.swing.table.*;

import java.awt.*;
//import javax.swing.border.*;
import java.awt.event.*;
import java.sql.*;
class dm3 extends JFrame implements ActionListener
{
JTable table;
DefaultTableModel dtm;
JPanel p,p1,p2;
JLabel l1,l2,l3,l4,l5,l6,l7;
JTextField y1,y2,y3,y4,y5,y6,y7;
JButton b1,b2,b3;
public dm3()
{
super("来访登记");
l1=new JLabel("访问日期:");
l2=new JLabel("姓名:");
l3=new JLabel("关系:");
l4=new JLabel("身份证号码:");
l5=new JLabel("访问对象:");
l6=new JLabel("返回时间:");
l7=new JLabel("访问楼号:");
b1=new JButton("插入记录:");
b2=new JButton("重置");
b3=new JButton("删除记录");
y1=new JTextField(10);
y2=new JTextField(10);
y3=new JTextField(10);
y4=new JTextField(20);
y5=new JTextField(10);
y6=new JTextField(10);
y7=new JTextField(10);
p=new JPanel();
p2=new JPanel();
p.setLayout(new GridLayout(4,3));
/*p.setLayout(null);
l1.setBounds(110,10,60,20);
y1.setBounds(180,10,100,20);
l2.setBounds(290,10,60,20);
y2.setBounds(360,10,100,20);
l3.setBounds(470,10,60,20);
y3.setBounds(510,10,60,20);
l4.setBounds(80,40,60,20);
y4.setBounds(150,40,60,20);
l5.setBounds(300,40,30,20);
y5.setBounds(360,40,30,20);
l6.setBounds(110,70,30,20);
y6.setBounds(175,70,30,20);
l7.setBounds(460,70,30,20);
y7.setBounds(520,70,30,20);
b1.setBounds(270,440,30,20);
b2.setBounds(310,440,30,30);
b3.setBounds(350,440,30,30);*/
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
p.add(l1);
p.add(y1);
p.add(l2);
p.add(y2);
p.add(l3);
p.add(y3);
p.add(l4);
p.add(y4);
p.add(l5);
p.add(y5);
p.add(l6);
p.add(y6);
p.add(l7);
p.add(y7);
p2.add(b1);
p2.add(b2);
p2.add(b3);



String[] column={"访问日期","姓名","身份证号码","访问对象","访问楼号","关系","返回时间"};
//实例化表模型
//参数1表示表中列名数组
//参数2表示表中初始行数
dtm=new DefaultTableModel(column,0);
//实例化table,用上面的表模式对象dim来构造表对象
//参数为表模式对象
table=new JTable(dtm);
//实例化面板
p1=new JPanel();
//p1.add(table);
//this.add(p1,BorderLayout.SOUTH);

p1.add(new JScrollPane(table));
this.add(p,BorderLayout.NORTH);
this.add(p1,BorderLayout.CENTER);
this.add(p2,BorderLayout.SOUTH);
this.setSize(550,600);
this.setVisible(true);
//this.setResizable(false);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
Dimension ds=Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((int)(ds.getWidth()/2-this.getWidth()/2),(int)(ds.getHeight()/2-this.getHeight()/2));
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
//声明数据库操作需要的对象
Connection con;//数据库连接对象
Statement stam;//向数据库发送sql命令对象
ResultSet rs;//结果集对象
try{//注:数据库操作必须要处理各种异常
//实现数据库操作的步骤:
//1、加载数据库驱动JDBC-ODBC
//注:sun.jdbc.odbc.JdbcOdbcDriver表示JDBC-ODBC驱动名,必须要一模一样
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2、创建数据库的连接,通过DriverManager类的getConnection方法
//参数1:表示连接数据库的URL地址。格式:jdbc:协议:数据源名称。
//即:mySource表示数据源名称(通过操作系统->控制面版->管理工具->ODBC数据源->系统DSN)
//参数2:表示数据库连接用户名
//参数3:表示数据库连接密码
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=Test","sa","123456");
System.out.println("连接成功!连接字符串为:"+con);
//3、创建向数据库发送sql语句的Statement对象
stam=con.createStatement();
//4、通过Statement对象执行sql语句(查询)并返回结果集(ResultSet)即查询后的表
//注:executeQuery(String)只用于向数据库发送select(查询)命令
rs=stam.executeQuery("select * from dbo.department");
//5、处理结果集(表进行操作)
Object[] colValue=new Object[2];//定义一个数组来保存每行中的列值
while(rs.next()){//通过循环读取结果集表中每一行记录
//next()用来判断当前读取指针指向的记录是否存在,注:指针最初位于第一行之前(表头)
//rs结果集对象调用getXXX(int/String)方法,表示获取指定列号(int)或指定列名(String)的当前记录列的值
//getXXX(int/String)方法中的XXX表示取对应列值列的类型与JAVA中类型匹配
//读取当前记录中第1列和第2列的值保存数组colValue
colValue[0]=rs.getString(1);
colValue[1]=rs.getString(2);
//把此数组添加表模式对象dtm
dtm.addRow(colValue);

}
//6、关闭数据库的连接
con.close();
}catch(Exception e1)
{
e1.printStackTrace();
}
}
}


public class 来访登记 {
public static void main(String[] a)
{
new dm3();
}
}

认真求学的软件生的主页 认真求学的软件生 | 菜鸟二级 | 园豆:202
提问于:2013-06-22 13:49
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册