- 论坛徽章:
- 0
|
一个Swing的Table如何使得它的列自己适应内容的长度呢
用vector
这是一个例子
- import java.sql.*;
- import javax.swing.table.*;
- import javax.swing.*;
- import java.util.*;
- public class search extends JFrame {
- public search() {
- initComponents();
- }
- private void initComponents() {
- javax.swing.JScrollPane resultScrollPane;
- resultScrollPane = new javax.swing.JScrollPane();
- resultTable = new javax.swing.JTable();
- queryButton = new javax.swing.JButton();
- setTitle("\u4fe1\u606f\u67e5\u8be2");
- addWindowListener(new java.awt.event.WindowAdapter() {
- public void windowClosing(java.awt.event.WindowEvent evt) {
- exitForm(evt);
- }
- });
- resultTable.setModel(new javax.swing.table.DefaultTableModel(
- new Object [][] {
- },
- new String [] {
- "姓名", "年", "月", "日"
- }
- ) {
- Class[] types = new Class [] {
- java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
- };
- boolean[] canEdit = new boolean [] {
- false, false, false, false
- };
- public Class getColumnClass(int columnIndex) {
- return types [columnIndex];
- }
- public boolean isCellEditable(int rowIndex, int columnIndex) {
- return canEdit [columnIndex];
- }
- });
- resultScrollPane.setViewportView(resultTable);
- getContentPane().add(resultScrollPane, java.awt.BorderLayout.CENTER);
- queryButton.setText("\u67e5\u8be2");
- queryButton.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- queryResult(evt);
- }
- });
- getContentPane().add(queryButton, java.awt.BorderLayout.SOUTH);
- pack();
- }
- private void queryResult(java.awt.event.ActionEvent evt) {
- Vector tem=new Vector(1,1);
- DefaultTableModel tModel = (DefaultTableModel)resultTable.getModel();
- int rn = tModel.getRowCount();
- for(int j = 0; j < rn; j++) {
- tModel.removeRow(0);
- }
- DBManager db = new DBManager();
- ResultSet rs = db.getResult("select * from birthday");
- try {
- if(rs == null) return;
- while(rs.next()) {
- String[] rowData = {null,null,null,null};
- tem=new Vector(1,1);
- tem.add(rs.getString("name"));
- tem.add(rs.getString("year"));
- tem.add(rs.getString("month"));
- tem.add(rs.getString("day"));
- tModel.addRow(tem);
- }
- rs.close();
- }
- catch(Exception re) {
- re.printStackTrace();
- }
- }
- /** Exit the Application */
- private void exitForm(java.awt.event.WindowEvent evt) {
- System.exit(0);
- }
- /**
- * @param args the command line arguments
- */
- public static void main(String args[]) {
- new search().setVisible(true);
- }
- // 变量声明 - 不进行修改
- private javax.swing.JButton queryButton;
- private javax.swing.JTable resultTable;
- // 变量声明结束
- }
复制代码 |
|