对齐 JTable 中单元格的值?
我不知道如何对齐 JTable 中单元格的值。
例如,Jtable 显示, 姓名 薪资 X先生 100000.50 XXXX 234.34 YYYy 1205.50
我想按以下格式对齐“工资”。
Name Salary
Mr.X 100000.50
XXXX 234.34
YYYy 1205.50
如何像上面的 JTable 一样对齐
I'm not aware of how to align the values of cells in JTable.
For Ex,The Jtable shows,
Name Salary
Mr.X 100000.50
XXXX 234.34
YYYy 1205.50
I want to align the "Salaries" in the following format.
Name Salary
Mr.X 100000.50
XXXX 234.34
YYYy 1205.50
How to align as above the JTable
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
无需为此创建自定义类,只需使用默认渲染器:
或者更好的方法是在表中实际存储 Double 值,然后使用适当的数字渲染器,并且数字渲染器自动右对齐。然后,您可以使用表格格式呈现器。
There is no need to create a custom class for this, just use the default renderer:
Or a better approach is to actually store Double values in the table and then a proper numeric renderer will be used and number renderers are automatically right aligned. You can then customize the formatting of the number using a Table Format Renderer.
我们需要做一个小修正,正确的方法是 DefaultTableCellRenderer.RIGHT
注意与 camickr 原始响应的区别,“Price”是列的名称,根据情况更改。
We need to make a small correction, the right way is DefaultTableCellRenderer.RIGHT
Notice the difference with the original response of camickr, "Price" is the name of the column, change according to the case.
一种简单的方法是使用 DefaultTableModel 并覆盖方法 getColumnClass()
例如:
如果返回 Integer,您的列将右对齐;如果返回 String,您的列将左对齐。
A simple way is using DefaultTableModel and override method getColumnClass()
Ex:
If you return Integer, your column will align right anh if return String your column will align left.
来自此论坛帖子:
创建一个扩展的类
DefaultTableCellRenderer
并实现getTableCellRendererComponent()
方法,类似于:并为相关列安装此渲染器。
现在您只需确保每个值具有相同的小数位数,因为对于大多数字体,所有数字都具有相同的宽度。
From this forum post:
Create a class that extends
DefaultTableCellRenderer
and implement thegetTableCellRendererComponent()
method, something like:and install this renderer for the column in question.
Now you only need to make sure that each value has the same number of decimal places because for most fonts, all digits have the same width.
我有一种将表中的列向右对齐的方法:
I have got a method that aligns a column in a table to the right:
解决方法是指定一个自定义 单元格每列的渲染器。每个渲染器将以不同的方式格式化该数据(名称将向左对齐,小数点向右对齐,...)
The way to go about it is to specify a custom cell renderer for each column. Each renderer will format that data differently (names will e aligned to the left, decimals to the right, ...)
至于同时不止一张桌子,我设法做到了这一点...它是@camickr 发布的,但我也添加了标题
as for more than one table at once i managed to do this ... its as @camickr posted but i added the headers too