有才華的人,別忘記給滋潤(rùn)你的那塊土壤施肥

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

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

                 

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

          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測(cè)試");
                  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                  Object rows[][] 
          ={
                          
          "王明""中國(guó)"44 },
                          
          "姚明""中國(guó)"25 },
                          
          "趙子龍""西蜀"1234 },
                          
          "曹操""北魏"2112 },
                          
          "Bill Gates""美國(guó)"45 },
                          
          "Mike""英國(guó)"33 } }
          ;
                  String columns[] 
          = "姓名""國(guó)籍""年齡" };
                  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 閱讀(1022) 評(píng)論(6)  編輯  收藏 所屬分類: swing

          評(píng)論

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

          # 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)

          ...............................  回復(fù)  更多評(píng)論
            

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

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

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

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

          主站蜘蛛池模板: 新竹市| 扎兰屯市| 全州县| 阳春市| 门头沟区| 罗平县| 获嘉县| 海丰县| 家居| 雷山县| 新野县| 凌云县| 游戏| 台山市| 五大连池市| 中江县| 闸北区| 鹤庆县| 武平县| 伊通| 青田县| 扎鲁特旗| 西林县| 成安县| 蕲春县| 镇远县| 富川| 若羌县| 菏泽市| 安阳市| 德兴市| 屏东县| 达日县| 手游| 大姚县| 毕节市| 南澳县| 安吉县| 陈巴尔虎旗| 大厂| 新野县|