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

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

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

    內蒙古java團隊

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

    在JTable中放置JTextarea

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


    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;
    ????}

    }


    控制的關鍵在這一段代碼:
    getSumaryTxtPane().setSize(columnModel.getColumn(column).getWidth(),?100000);
    其中100000可以變成>=7的數字都是可以的
    主站蜘蛛池模板: 成人免费的性色视频| 午夜免费福利视频| 国产高清视频在线免费观看| 深夜福利在线视频免费| 性盈盈影院免费视频观看在线一区| 在线观看亚洲一区二区| 久久久久国产免费| 亚洲黄网在线观看| 国产成人精品免费午夜app | 国产成人精品亚洲一区| 国产伦一区二区三区免费| 激情婷婷成人亚洲综合| 免费A级毛片无码久久版| 免费无遮挡无遮羞在线看| 亚洲美女高清一区二区三区 | 亚洲韩国—中文字幕| 99精品一区二区免费视频| 亚洲毛片在线免费观看| 日本最新免费网站| 在线观看亚洲AV日韩AV| 国产高清免费观看| 黄色免费网站在线看| 亚洲情XO亚洲色XO无码| 99re视频精品全部免费| 亚洲最新中文字幕| 日本最新免费不卡二区在线| 一级毛片高清免费播放| 亚洲av之男人的天堂网站| 91av在线免费视频| 亚洲AV成人一区二区三区观看 | 国产av无码专区亚洲av桃花庵| 91老湿机福利免费体验| 国产精品高清视亚洲精品| 日韩a在线观看免费观看| 人妻无码中文字幕免费视频蜜桃| 亚洲国产一二三精品无码| 亚洲免费在线视频观看| 欧洲亚洲综合一区二区三区 | 久久免费高清视频| 一区二区亚洲精品精华液| 亚洲一级特黄大片无码毛片|