<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    內(nèi)蒙古java團(tuán)隊(duì)

    j2se,j2ee開發(fā)組
    posts - 139, comments - 212, trackbacks - 0, articles - 65
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    在JTable中放置JTextarea

    Posted on 2006-11-26 13:30 帥子 閱讀(588) 評論(0)  編輯  收藏 所屬分類: j2se技術(shù)專區(qū)
    今天需要做一個界面,JTable的其中最后一列的顯示的文字比較多,而且需要分行顯示。JTable默認(rèn)所存放的CellRenderer是JTextField,無法滿足要求,經(jīng)過google在網(wǎng)上查找相關(guān)資料,大多數(shù)實(shí)現(xiàn)并沒有實(shí)現(xiàn)根據(jù)textarear里面文字信息的多少決定textarea的高度。寫了一個實(shí)現(xiàn),請大家參考一下。


    package?com.ideal.ieai.adaptors.taskadaptor.usertask.view.timeout;

    import?java.awt.BorderLayout;
    import?java.awt.Component;
    import?java.awt.FlowLayout;
    import?java.awt.GridBagConstraints;
    import?java.awt.GridBagLayout;

    import?javax.swing.DefaultCellEditor;
    import?javax.swing.JButton;
    import?javax.swing.JPanel;
    import?javax.swing.JScrollPane;
    import?javax.swing.JTable;
    import?javax.swing.JTextArea;
    import?javax.swing.JTextField;
    import?javax.swing.JTextPane;
    import?javax.swing.border.TitledBorder;
    import?javax.swing.table.DefaultTableCellRenderer;
    import?javax.swing.table.DefaultTableModel;
    import?javax.swing.table.TableCellEditor;
    import?javax.swing.table.TableColumn;
    import?javax.swing.table.TableColumnModel;
    import?javax.swing.table.TableModel;

    public?class?TimeoutPanel?extends?JPanel
    {

    ????private?JScrollPane???????_scrlRules?????=?null;
    ????private?JTable????????????_tblRules??????=?null;
    ????private?JPanel????????????_panelCtrl?????=?null;
    ????private?JButton???????????_btnAdd????????=?null;
    ????private?JButton???????????_btnEdit???????=?null;
    ????private?JButton???????????_btnDel????????=?null;
    ????private?DefaultTableModel?_tblModelRules?=?null;
    ????private?JTextPane?????????_sumaryTxtPane?=?null;

    ????/**
    ?????*?This?is?the?default?constructor
    ?????*/
    ????public?TimeoutPanel()
    ????{
    ????????super();
    ????????initialize();
    ????}

    ????/**
    ?????*?This?method?initializes?this
    ?????*?
    ?????*?@return?void
    ?????*/
    ????private?void?initialize?()
    ????{
    ????????setLayout(new?BorderLayout());
    ????????add(getScrlRules(),?BorderLayout.CENTER);
    ????????add(getPanelCtrl(),?BorderLayout.SOUTH);
    ????????this.setSize(500,?400);
    ????}

    ????private?Component?getPanelCtrl?()
    ????{
    ????????if?(null?==?_panelCtrl)
    ????????{
    ????????????_panelCtrl?=?new?JPanel();
    ????????????_panelCtrl.setLayout(new?FlowLayout(FlowLayout.RIGHT,?4,?4));
    ????????????_panelCtrl.add(getBtnAdd());
    ????????????_panelCtrl.add(getBtnEdit());
    ????????????_panelCtrl.add(getBtnDel());
    ????????}
    ????????return?_panelCtrl;
    ????}

    ????private?Component?getBtnDel?()
    ????{
    ????????if?(null?==?_btnDel)
    ????????{
    ????????????_btnDel?=?new?JButton("delete");
    ????????}
    ????????return?_btnDel;
    ????}

    ????private?Component?getBtnEdit?()
    ????{
    ????????if?(null?==?_btnEdit)
    ????????{
    ????????????_btnEdit?=?new?JButton("edit");
    ????????}
    ????????return?_btnEdit;
    ????}

    ????private?Component?getBtnAdd?()
    ????{
    ????????if?(null?==?_btnAdd)
    ????????{
    ????????????_btnAdd?=?new?JButton("add");
    ????????}
    ????????return?_btnAdd;
    ????}

    ????private?Component?getScrlRules?()
    ????{
    ????????if?(null?==?_scrlRules)
    ????????{
    ????????????_scrlRules?=?new?JScrollPane();
    ????????????_scrlRules.getViewport().add(getTblRules());
    ????????}
    ????????return?_scrlRules;
    ????}

    ????private?Component?getTblRules?()
    ????{
    ????????if?(null?==?_tblRules)
    ????????{
    ????????????_tblRules?=?new?JTable();
    ????????????_tblRules.setModel(getTblModelRules());

    ????????????_tblRules.getColumnModel().getColumn(5).setCellRenderer(new?DefaultTableCellRenderer()
    ????????????{
    ????????????????public?Component?getTableCellRendererComponent?(?JTable?table,?Object?value,
    ????????????????????????boolean?isSelected,?boolean?hasFocus,?int?row,?int?column?)
    ????????????????{
    ????????????????????getSumaryTxtPane().setText((String)?value);
    ????????????????????TableColumnModel?columnModel?=?table.getColumnModel();
    ????????????????????getSumaryTxtPane().setSize(columnModel.getColumn(column).getWidth(),?100000);
    ????????????????????int?heightWanted?=?(int)?getSumaryTxtPane().getPreferredSize().getHeight();
    ????????????????????if?(heightWanted?!=?table.getRowHeight(row))
    ????????????????????{
    ????????????????????????table.setRowHeight(row,?heightWanted);
    ????????????????????}
    ????????????????????return?getSumaryTxtPane();
    ????????????????}
    ????????????});
    ????????}
    ????????return?_tblRules;
    ????}

    ????private?JTextPane?getSumaryTxtPane?()
    ????{
    ????????if?(null?==?_sumaryTxtPane)
    ????????{
    ????????????_sumaryTxtPane?=?new?JTextPane();
    ????????}
    ????????return?_sumaryTxtPane;
    ????}

    ????private?TableModel?getTblModelRules?()
    ????{
    ????????if?(null?==?_tblModelRules)
    ????????{
    ????????????_tblModelRules?=?new?DefaultTableModel()
    ????????????{
    ????????????????public?boolean?isCellEditable?(?int?row,?int?colum?)
    ????????????????{
    ????????????????????return?false;
    ????????????????}
    ????????????};
    ????????????_tblModelRules.addColumn("Rule?Name");
    ????????????_tblModelRules.addColumn("Type");
    ????????????_tblModelRules.addColumn("Timeout");
    ????????????_tblModelRules.addColumn("Task?Status");
    ????????????_tblModelRules.addColumn("Alert?Type");
    ????????????_tblModelRules.addColumn("Sumary");
    ????????????_tblModelRules
    ????????????????????.addRow(new?Object[]?{?"rule1",?"type1",?"timeout1",?"task?status",
    ????????????????????????????"alert?type1",
    ????????????????????????????"a\na\na\na"?});
    ????????????_tblModelRules
    ????????????????????.addRow(new?Object[]?{?"rule1",?"type1",?"timeout1",?"task?status",
    ????????????????????????????"alert?type1",
    ????????????????????????????"a\na\na\na"?});
    ????????????_tblModelRules
    ????????????.addRow(new?Object[]?{?"rule1",?"type1",?"timeout1",?"task?status",
    ????????????????????"alert?type1",
    ????????????????????"a\na\na\na"?});
    ????????????_tblModelRules
    ????????????.addRow(new?Object[]?{?"rule1",?"type1",?"timeout1",?"task?status",
    ????????????????????"alert?type1",
    ????????????????????"a\na\na\na"?});
    ????????}
    ????????return?_tblModelRules;
    ????}

    }


    控制的關(guān)鍵在這一段代碼:
    getSumaryTxtPane().setSize(columnModel.getColumn(column).getWidth(),?100000);
    其中100000可以變成>=7的數(shù)字都是可以的
    主站蜘蛛池模板: 国产精品亚洲专区一区| 男人j进入女人j内部免费网站| jlzzjlzz亚洲乱熟在线播放| 18禁止看的免费污网站| 污视频网站在线免费看| 亚洲人成人77777在线播放| 亚洲精品无码乱码成人| 国产午夜免费秋霞影院| 无人在线直播免费观看| a在线观看免费视频| 羞羞视频免费观看| 亚洲一区二区三区高清不卡| 亚洲国产老鸭窝一区二区三区| 亚洲国产天堂久久综合| 大学生一级特黄的免费大片视频| 久久久久久影院久久久久免费精品国产小说 | 成人免费毛片视频| 99视频在线免费看| 免费无码又爽又刺激一高潮| 久久免费精品一区二区| 国产精品免费久久久久电影网| 亚洲av乱码中文一区二区三区| 亚洲国产成+人+综合| 亚洲无吗在线视频| 亚洲国产精品18久久久久久| 亚洲资源最新版在线观看| 中文字幕无码精品亚洲资源网久久| 亚洲韩国在线一卡二卡| 亚洲AV成人精品网站在线播放| 亚洲女同成人AⅤ人片在线观看| 亚洲日韩乱码中文无码蜜桃臀网站 | 中文字幕一区二区免费| 免费人成网站永久| a在线观看免费网址大全| 亚洲色成人网一二三区| 亚洲卡一卡2卡三卡4麻豆| 亚洲av午夜国产精品无码中文字| 日韩在线观看免费| 黄色一级毛片免费看| 热99RE久久精品这里都是精品免费| 亚洲免费视频播放|