Chinaunix

标题: 一个Swing的Table如何使得它的列自己适应内容的长度呢 [打印本页]

作者: superspiceshen    时间: 2004-10-15 10:18
标题: 一个Swing的Table如何使得它的列自己适应内容的长度呢
如题
谢谢指教!
作者: ilcj    时间: 2004-10-15 11:28
标题: 一个Swing的Table如何使得它的列自己适应内容的长度呢
用vector
这是一个例子
  1. import java.sql.*;
  2. import javax.swing.table.*;
  3. import javax.swing.*;
  4. import java.util.*;
  5. public class search extends JFrame {
  6. public search() {
  7. initComponents();
  8. }
  9. private void initComponents() {
  10. javax.swing.JScrollPane resultScrollPane;
  11. resultScrollPane = new javax.swing.JScrollPane();
  12. resultTable = new javax.swing.JTable();
  13. queryButton = new javax.swing.JButton();

  14. setTitle("\u4fe1\u606f\u67e5\u8be2");
  15. addWindowListener(new java.awt.event.WindowAdapter() {
  16. public void windowClosing(java.awt.event.WindowEvent evt) {
  17. exitForm(evt);
  18. }
  19. });

  20. resultTable.setModel(new javax.swing.table.DefaultTableModel(
  21. new Object [][] {

  22. },
  23. new String [] {
  24. "姓名", "年", "月", "日"
  25. }
  26. ) {
  27. Class[] types = new Class [] {
  28. java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
  29. };
  30. boolean[] canEdit = new boolean [] {
  31. false, false, false, false
  32. };

  33. public Class getColumnClass(int columnIndex) {
  34. return types [columnIndex];
  35. }

  36. public boolean isCellEditable(int rowIndex, int columnIndex) {
  37. return canEdit [columnIndex];
  38. }
  39. });
  40. resultScrollPane.setViewportView(resultTable);

  41. getContentPane().add(resultScrollPane, java.awt.BorderLayout.CENTER);

  42. queryButton.setText("\u67e5\u8be2");
  43. queryButton.addActionListener(new java.awt.event.ActionListener() {
  44. public void actionPerformed(java.awt.event.ActionEvent evt) {
  45. queryResult(evt);
  46. }
  47. });

  48. getContentPane().add(queryButton, java.awt.BorderLayout.SOUTH);

  49. pack();
  50. }

  51. private void queryResult(java.awt.event.ActionEvent evt) {
  52. Vector tem=new Vector(1,1);  
  53. DefaultTableModel tModel = (DefaultTableModel)resultTable.getModel();
  54. int rn = tModel.getRowCount();
  55. for(int j = 0; j < rn; j++) {
  56. tModel.removeRow(0);
  57. }
  58. DBManager db = new DBManager();
  59. ResultSet rs = db.getResult("select * from birthday");
  60. try {
  61. if(rs == null) return;
  62. while(rs.next()) {
  63. String[] rowData = {null,null,null,null};
  64. tem=new Vector(1,1);
  65. tem.add(rs.getString("name"));
  66. tem.add(rs.getString("year"));
  67. tem.add(rs.getString("month"));
  68. tem.add(rs.getString("day"));
  69. tModel.addRow(tem);
  70. }
  71. rs.close();  
  72. }
  73. catch(Exception re) {
  74. re.printStackTrace();
  75. }
  76. }

  77. /** Exit the Application */
  78. private void exitForm(java.awt.event.WindowEvent evt) {
  79. System.exit(0);
  80. }

  81. /**
  82. * @param args the command line arguments
  83. */
  84. public static void main(String args[]) {
  85. new search().setVisible(true);
  86. }

  87. // 变量声明 - 不进行修改
  88. private javax.swing.JButton queryButton;
  89. private javax.swing.JTable resultTable;
  90. // 变量声明结束

  91. }
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2