hallo,
ich habe ein etwas komplizierteres problem mit nem cell renderer. und zwar hab ich folgenden renderer benutzt, um in einer tabellenspalte einen link anzuzeigen:
es wird eigentlich nichts anderes gemacht als die vordergrundfarbe blau zu zeichnen und mittels html-tags bekommt man auch das unterstreichen hin (leider gibts beim Font selbst ja kein unterstrichen, sondern nur plain, bold und italic).
die spalte wird über einen listener auch anklickbar gemacht, d.h. sobald man mit der maus über den link fährt ändert sich der mauszeiger und man kann durch einen klick auf den link einen dialog öffnen. soweit so gut.
ABER:
ist der string des links größer als die spalte breit ist, dann wird leider nicht mit ... abgeschnitten sondern es erfolgt ein zeilenumbruch und man hat den string zwei-zeilig in der tabelle, was aber nicht sein soll.
ich habe nur die möglichkeit gefunden, den html-code wegzulassen (auskommentieren). dadurch wird der string des labels automatisch abgeschnitten und mit ... ergänzt, je nachdem wie groß oder klein man die spalte zieht. das funktioniert wunderbar, aber was dann fehlt ist das UNTERSTREICHEN des link-textes, was ich nur mit html hinbekomme.
kann mir da jemand evtl. helfen oder sieht eine möglichkeit, wie ich das anstellen könnte, daß auch der text wenn er in html dargestellt wird am ende mit ... abgeschnitten wird, sobald der text nicht mehr reinpaßt?
gäbe es beim JLabel sowas wie getVisibleText könnte ich den text verwenden und ihn mit html umgeben, aber es gibt leider nur getText und da steht auch immer der komplette text drin, auch wenn auf dem bildschirm nur ein teil mit abgeschnittenen ... dargestellt wird.
bitte um tips
gruß tom
ich habe ein etwas komplizierteres problem mit nem cell renderer. und zwar hab ich folgenden renderer benutzt, um in einer tabellenspalte einen link anzuzeigen:
Code:
package de.haufe.modules.calendar.gui.components;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
public class LinkCellRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent (JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
JLabel label = (JLabel) super.getTableCellRendererComponent (table, value, isSelected, hasFocus, row, column);
label.setForeground (Color.BLUE);
label.setText ("<html><u>" + label.getText () + "</u></html>");
return label;
}
}
es wird eigentlich nichts anderes gemacht als die vordergrundfarbe blau zu zeichnen und mittels html-tags bekommt man auch das unterstreichen hin (leider gibts beim Font selbst ja kein unterstrichen, sondern nur plain, bold und italic).
die spalte wird über einen listener auch anklickbar gemacht, d.h. sobald man mit der maus über den link fährt ändert sich der mauszeiger und man kann durch einen klick auf den link einen dialog öffnen. soweit so gut.
ABER:
ist der string des links größer als die spalte breit ist, dann wird leider nicht mit ... abgeschnitten sondern es erfolgt ein zeilenumbruch und man hat den string zwei-zeilig in der tabelle, was aber nicht sein soll.
ich habe nur die möglichkeit gefunden, den html-code wegzulassen (auskommentieren). dadurch wird der string des labels automatisch abgeschnitten und mit ... ergänzt, je nachdem wie groß oder klein man die spalte zieht. das funktioniert wunderbar, aber was dann fehlt ist das UNTERSTREICHEN des link-textes, was ich nur mit html hinbekomme.
kann mir da jemand evtl. helfen oder sieht eine möglichkeit, wie ich das anstellen könnte, daß auch der text wenn er in html dargestellt wird am ende mit ... abgeschnitten wird, sobald der text nicht mehr reinpaßt?
gäbe es beim JLabel sowas wie getVisibleText könnte ich den text verwenden und ihn mit html umgeben, aber es gibt leider nur getText und da steht auch immer der komplette text drin, auch wenn auf dem bildschirm nur ein teil mit abgeschnittenen ... dargestellt wird.
bitte um tips
gruß tom