import javaxswing;
import javaxswingtable;
import javaawt;
class C extends JFrame {
public C() {
JTable tbl = new JTable(new String[][]{{
"JTable 里单元格内容的显示器是 TableCellRenderer。",
"默认的显示器(DefaultTableCellRenderer)继承 JLabel 所以不方便多行显示。",
"要多行显示应该继承 JTextArea(参看下面的 TableCellTextAreaRenderer 类)。",
"当然,别忘了调用 JTablesetDefaultRenderer() 登记你的显示器。"}},
"A B C D"split(" "));
tblsetDefaultRenderer(Objectclass, new TableCellTextAreaRenderer());
add(new JScrollPane(tbl));
setSize(800, 200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) { new C(); }
}
class TableCellTextAreaRenderer extends JTextArea implements TableCellRenderer {
public TableCellTextAreaRenderer() {
setLineWrap(true);
setWrapStyleWord(true);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
// 计算当下行的最佳高度
int maxPreferredHeight = 0;
for (int i = 0; i < tablegetColumnCount(); i++) {
setText("" + tablegetValueAt(row, i));
setSize(tablegetColumnModel()getColumn(column)getWidth(), 0);
maxPreferredHeight = Mathmax(maxPreferredHeight, getPreferredSize()height);
}
if (tablegetRowHeight(row) != maxPreferredHeight) // 少了这行则处理器瞎忙
tablesetRowHeight(row, maxPreferredHeight);
setText(value == null "" : valuetoString());
return this;
}
}
参考资料:
>
需要准备的材料分别有:电脑、浏览器、html编辑器。
1、首先,打开html编辑器,新建html文件,例如:indexhtml,编写问题基础代码。
2、在indexhtml中的<body>标签中,将外层的table改为div,新增css代码:div {width: 300px;} table {float: left;}。
3、浏览器运行indexhtml页面,此时表格们实现了每3个自动换行。
您好,这样:<table width="480" border="0" cellspacing="0"
cellpadding="0" style="word-break:break-all;word-wrap:break-word">
<tr>
</tr>
</table>
解释:
语法:
word-break
: normal | break-all | keep-all
参数:
normal : 依照亚洲语言和非亚洲语言的文本规则,允许在字内换行
break-all :
该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本
keep-all :
与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。适合包含少量亚洲文本的非亚洲文本
说明:
设置或检索对象内文本的字内换行行为。尤其在出现多种语言时。
对于中文,应该使用break-all
。
对应的脚本特性为wordBreak。请参阅我编写的其他书目。
word-wrap版本:IE55+专有属性 继承性:有
语法:
word-wrap : normal | break-word
参数:
normal : 允许内容顶开指定的容器边界
break-word :
内容将在边界内换行。如果需要,词内换行(word-break)也行发生
说明:
设置或检索当当前行超过指定容器的边界时是否断开转行。可使用css样式中的word-break属性,指定其属性值为break-all,即可实现表格内文字自动换行。
示例如下:
<html>
<head><title>例子</title>
</head>
<body>
<table
style="word-break:break-all">
<!采用css的内嵌样式指定自动换行属性>
</table>
</body>
</html>TableLayout 是 Android 平台上一种非常常用的布局方式,可以在单元格中放置其他布局组件。对于 TableLayout 单元格自动换行的问题,主要有以下两个方面需要注意。
首先,可以使用 android:singleLine 属性来控制单元格内部的文本是否换行。当该属性设置为 false 时,单元格内的文本就会自动进行换行 *** 作。同时,可以使用 android:stretchColumns 属性来指定某一列的宽度是否可以随着内容的变化而自适应调整。
其次,还可以通过代码实现自动换行的效果。我们可以在代码中根据内容的大小来计算出单元格的宽度,并设置单元格的布局参数。例如,可以使用 LinearLayoutLayoutParams 中的 weight 属性来根据内容的长度来动态调整单元格的宽度。
需要注意的是,在进行 TableLayout 布局时,单元格内的组件应该尽量避免设置固定宽度或高度,以便布局可以更加灵活自适应。同时,为了保证单元格内的组件可以显示完整内容,可以根据需要设置 padding 或 margin 等样式属性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)