2013-10-15 3 views
0

Когда я создаю 2 вектора (данные, столбцы) и использую их в JTable для отображения строк с заголовком столбца, он просто отображает строки, а не заголовок столбца.JTable имена столбцов не печатаются

В JOptionPane они хорошо видны заголовками столбцов. Я предполагаю, где выделено жирным шрифтом, где это происходит неправильно, так как он не получает правильных имен столбцов.

общественный недействительный displayLettingProperties() бросает SQLException {

Connection conn = null; 
    try {  
     conn = DriverManager.getConnection(CONN_STRING, USERNAME, PASSWORD); 
     System.out.println("Connected to database.");  

     // The Connection is obtained 

     Statement Stmt = (Statement) conn.createStatement(); 
    // Stmt.execute(createPropertyTable); 

     ResultSet rs = Stmt.executeQuery("select * from PropertyLettings ORDER BY propertyBedrooms ASC"); 

     // It creates and displays the table 
     **JTable table = new JTable(buildTableModel(rs));** 


    // Set Column Widths 

     table.getColumnModel().getColumn(0).setPreferredWidth(100); 
     table.getColumnModel().getColumn(1).setPreferredWidth(50); 
     table.getColumnModel().getColumn(2).setPreferredWidth(350); 
     table.getColumnModel().getColumn(3).setPreferredWidth(100); 
     table.getColumnModel().getColumn(4).setPreferredWidth(100); 
     table.getColumnModel().getColumn(5).setPreferredWidth(350); 
     table.getColumnModel().getColumn(6).setPreferredWidth(100); 
     table.getColumnModel().getColumn(7).setPreferredWidth(130); 



    // JOptionPane.showMessageDialog(null, new JScrollPane(table)); 

     final JPanel panelOne = new JPanel(); 
     panelOne.setVisible(true); 
     panelOne.setBackground(Color.LIGHT_GRAY); 
     // JFRAME 
     final JFrame topFrame = new JFrame(); 
     topFrame.setSize(1550, 300); 
     topFrame.setLocationRelativeTo (null); 
     topFrame.setVisible(true); 
     topFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 


     // PUT TOGETHER 
     topFrame.add(panelOne); 

     panelOne.add(table); 


     panelOne.revalidate(); 
     panelOne.repaint(); 


    } catch (SQLException e) { 
     System.err.println("Cannot connect to database." + e); 


    } finally { 

    if(conn != null){ 
     conn.close(); 

     } 

    } 
+0

Что ваш вопрос? –

ответ

2

Как вы посоветовали делать в previous question с этим кодом, вам нужно добавить таблицу в JScrollPane перед добавлением в UI.

panelOne.add(new JScrollPane(table)); 

Посмотрите на How to use scroll panes и How to use tables для получения более подробной информации ...

Смежные вопросы