私はこのサイトで利用可能な垂直テーブルヘッダーセルレンダラーを使用しましたhere それは私のためにはうまくいくが、私はこのような複数の行を垂直に整列したいくつかのヘッダーこの例の画像(座標ジオメトリ)で見ることができます。私は適切な\ n文字で文字列を設定しようとしましたが、私のアプローチは非常に単純で間違っていると思います。 簡単にしてください。 ありがとうございました!縦テーブルヘッダーセルレンダラー
3
A
答えて
3
Joopの回答から、私はこれを作った。ラベルを直接変更する代わりに、\n
をそのまま使用できます。この方法を使用して、ファイルDefaultTableHeaderCellRenderer.java
で
、置き換えgetTableCellRendererComponent
:
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
String str = (value == null) ? "" : value.toString();
BufferedReader br = new BufferedReader(new StringReader(str));
String line;
StringBuilder sb = new StringBuilder("<HTML>");
try {
while ((line = br.readLine()) != null) {
sb.append(line).append("<br/>");
}
} catch (IOException ex) {
ex.printStackTrace();
}
sb.append("</HTML>");
super.getTableCellRendererComponent(table, sb,
isSelected, hasFocus, row, column);
JTableHeader tableHeader = table.getTableHeader();
if (tableHeader != null) {
setForeground(tableHeader.getForeground());
}
setIcon(getIcon(table, column));
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
return this;
}
4
関連する問題
- 1. CSS - 縦線
コードをありがとう! – Vagelism
ようこそ。ラベルを中央にしたい場合は 'while'でこれを使います:' sb.append( "
もう一度、助けてくれてありがとう!必要なだけの作品! – Vagelism