ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – 如何根据在其单元格中输入的文本内容来增加jtable中行的高度

2019-08-23 09:02:53  阅读:124  来源: 互联网

标签:java swing jtable


我有一个可编辑的jtable.当用户使用文本写入单元格时,如果输入的文本更符合单元格的大小,则表格中行的高度必须增加以适合用户输入的新文本.你能告诉我如何根据输入的文本行增加行的高度.

任何人都可以帮助我吗?
我试图将JTextArea添加到一行,但这不起作用.

解决方法:

您需要计算新输入文本所需的高度.根据您用于单元格的渲染器,您可以使用例如JTextArea.getLineCount()以查找文本包含的行数.

然后,您需要检索渲染器使用的字体高度,并计算出所需的高度.

获得该数字后,使用JTable.setRowHeight(int,int)更改特定行的高度.

像这样的东西:

Component c = renderer.getTableCellRendererComponent(theTable, theTable.getValueAt(row, col), false, false, row, col);
Font f = c.getFont();
FontMetrics fm = c.getFontMetrics(f);

// this cast depends on the way your renderer is implemented !!!!
int lineCount = ((JTextArea)c).getLineCount();

tnt fheight = fm.getHeight();
int rowHeight = lineCount * fheight;

theTable.setRowHeight(row, rowHeight);

标签:java,swing,jtable
来源: https://codeday.me/bug/20190823/1696445.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有