Java 在 JTable 列中设置右对齐
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3467052/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Set Right Alignment in JTable Column
提问by Arivu2020
I am creating an application for a billing facility. I want the amount column to display with right alignment. How do I set the right alignment for a JTable column?
我正在为计费工具创建应用程序。我希望金额列以右对齐方式显示。如何为 JTable 列设置正确的对齐方式?
回答by trashgod
See Concepts: Editors and Renderers, noting "Number
— rendered by a right-aligned label." Just have your TableModel
return the correct class. As a concrete example, note that Integer
is a Number
, while examining the implementation of getColumnClass()
in this example. In this related example, the zeroth colIndex
returns Object.class
, which is "rendered by a label that displays the object's string value." By default, the label is left-aligned.
请参阅概念:编辑器和渲染器,注意“ Number
— 由右对齐标签渲染”。只需让您TableModel
返回正确的课程即可。作为一个具体的例子,在检查这个例子中的实现时,请注意它Integer
是。在这个相关示例中,第零个返回,它“由显示对象字符串值的标签呈现”。默认情况下,标签左对齐。Number
getColumnClass()
colIndex
Object.class
switch (colIndex) {
case 0: return Object.class;
…
}
In contrast, Integer.class
is "rendered by a right-aligned label."
相比之下,Integer.class
是“由右对齐标签呈现”。
switch (colIndex) {
case 0: return Integer.class;
…
}
These are examples of using Class Literals as Runtime-Type Tokens, discussed herein the context of JTable
.
这些是使用的示例类常量作为运行时类型令牌,讨论在这里的背景下JTable
。
回答by YoK
You will have to get DefaultTableCellRenderer for table cells and call setHorizontalAlignment(alignment).
您必须为表格单元格获取 DefaultTableCellRenderer 并调用 setHorizontalAlignment(alignment)。
Example can be found on links:
可以在链接上找到示例:
http://www.techrepublic.com/article/how-to-justify-data-in-a-jtable-cell/5032692/
http://www.techrepublic.com/article/how-to-justify-data-in-a-jtable-cell/5032692/
http://www.coderanch.com/t/337549/GUI/java/align-data-columns-JTable
http://www.coderanch.com/t/337549/GUI/java/align-data-columns-JTable
回答by Emil
Try this:
尝试这个:
JTable tbl = new JTable(3,3) {
DefaultTableCellRenderer renderRight = new DefaultTableCellRenderer();
{ // initializer block
renderRight.setHorizontalAlignment(SwingConstants.RIGHT);
}
@Override
public TableCellRenderer getCellRenderer (int arg0, int arg1) {
return renderRight;
}
};
回答by sathya
DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
table.getColumnModel().getColumn(4).setCellRenderer(rightRenderer);