在JTable中放置JTextarea

文章作者 100test 发表时间 2007:03:14 16:36:11
来源 100Test.Com百考试题网


今天需要做一个界面,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("0delete").
}
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()).


相关文章


对InputStream和OutputStream的理解
数据库BEAN:RESIN连接池
在JTable中放置JTextarea
String.split()用法的一点经验
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛