有才華的人,別忘記給滋潤你的那塊土壤施肥

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            28 隨筆 :: 5 文章 :: 147 評論 :: 0 Trackbacks

                  下周完我就工作滿一年啦。回想大部分的時間都被好奇心給占去了,這個組件好玩弄一下,那個好玩也弄一下,最后手里還是什么都沒得,而本身的工作是基于swing,倒是沒花多少精力,最后也是對swing一知半解,今天想研究研究下talbe,卻發(fā)現(xiàn)被這么個問題給卡住了。
                 是這樣的給TableModel傳入表頭和內(nèi)容,但是直接將table加到frame中去,table顯示不了表頭如圖1,但是將table放到JScrollPane中去,卻能顯示,如圖2。

                 

                                               圖一      
                       
                                       圖二                                                              
              為什么這樣?實在是弄不明白,不知道有那位高手指點下不?
               源碼如下:

          package kissJava.JTable;

          import javax.swing.*;
          import javax.swing.table.*;
          import java.awt.*;
          public class TestSortedTable {
              
          public static void main(String args[]){
                  JFrame frame 
          = new JFrame("JTable的header測試");
                  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                  Object rows[][] 
          ={
                          
          "王明""中國"44 },
                          
          "姚明""中國"25 },
                          
          "趙子龍""西蜀"1234 },
                          
          "曹操""北魏"2112 },
                          
          "Bill Gates""美國"45 },
                          
          "Mike""英國"33 } }
          ;
                  String columns[] 
          = "姓名""國籍""年齡" };
                  TableModel model 
          = new DefaultTableModel(rows, columns);
                  JTable table 
          = new JTable(model);
                  
                  RowSorter
          <TableModel> sorter = new TableRowSorter<TableModel>(model);
                  table.setRowSorter(sorter);
                  
                  JScrollPane pane 
          = new JScrollPane(table);
                  frame.add(pane, BorderLayout.CENTER);
          //顯示header        
              
          //    frame.add(table, BorderLayout.CENTER);//不顯示header    
                  frame.setSize(300150);
                  frame.setVisible(
          true);
            }

          }

          posted on 2008-03-21 12:31 kissjava 閱讀(1020) 評論(6)  編輯  收藏 所屬分類: swing

          評論

          # re: 關(guān)于JTable,為何這樣? 2008-03-21 13:52 枯寬
          剛找了下,發(fā)現(xiàn)不用JScrollPane的時候,加上frame.getContentPane().add(table.getTableHeader(), BorderLayout.NORTH); 也能顯示header,可swing為什么要這樣???  回復  更多評論
            

          # re: 關(guān)于JTable,為何這樣? 2008-03-21 15:42 枯寬
          呼呼。找了jdk。上面說就那樣要么用JScollPane要么add(table.getTableHeader())

          看了源代碼流程是這樣的:
          JTable-->initializeLocalVars()-->setTableHeader(createDefaultTableHeader());

          JTable-->addNotify()-->configureEnclosingScrollPane()-->(JScollPane)setColumnHeaderView(Component view)-->setView(Component view)

          ...............................  回復  更多評論
            

          # re: 關(guān)于JTable,為何這樣? 2008-03-21 17:20 林子
          技術(shù)高手..小M來捧捧場了.  回復  更多評論
            

          # re: 關(guān)于JTable,為何這樣? 2008-03-30 09:38 even
          我也來逛逛, 現(xiàn)在完全聽不懂了。 重新編輯博客更好吧,為什么放在評論里,老江多出手??!博客就是要經(jīng)常更新才行,像我家那塊地,已經(jīng)是死水了,好比政府網(wǎng)站,萬年不變,后來自己都不愿看了,對了,放點自拍?。?nbsp; 回復  更多評論
            

          # re: 關(guān)于JTable,為何這樣? 2009-03-14 15:39 hwl
          @枯寬
          你好!看了你的帖子受益匪淺,我也正有這方面的疑問。
          1.你說你找了jdk,上面說就那樣,要么用jscrollpane要么用add()。我也去找了一下,怎么我沒找到?我用的是Java 2 SE 6 Documentation.是不是我用的jdk不對,我甚至都沒看到有關(guān)信息,這還是我在寫代碼時發(fā)現(xiàn)的。
          2.你所列的源代碼流程是怎樣弄到的,是看src.zip嗎?
          真的希望你能發(fā)封email給我,給我指點迷津。我的email是
          hwljava@163.com
          期待你的回復!謝謝!  回復  更多評論
            

          # re: 關(guān)于JTable,為何這樣? 2009-03-14 15:52 hwl
          不好意思,剛才第一個問題搞錯了,jdk里有這個說明的。我想問的是為什么java要弄成這樣?這不是多此一舉嗎?我剛用JTable(Object[][],Object[]columnname)時,看到這個構(gòu)造方法里說按照指定的columnname構(gòu)造表格時還以為這表格就已經(jīng)包含有表頭了。  回復  更多評論
            

          主站蜘蛛池模板: 长丰县| 兴隆县| 富川| 镇安县| 平湖市| 西城区| 萍乡市| 延安市| 安康市| 建水县| 乐山市| 上杭县| 敖汉旗| 锦屏县| 定陶县| 乾安县| 奉节县| 周宁县| 宜宾市| 阿拉尔市| 沾益县| 朝阳区| 芦溪县| 鹤山市| 太谷县| 阜南县| 简阳市| 西和县| 新平| 梨树县| 萍乡市| 宁国市| 荆门市| 庐江县| 象山县| 秦皇岛市| 柞水县| 丹寨县| 闽侯县| 杭锦旗| 中宁县|