Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
ich würde gerne die Ausrichtung(links, rechts, zentral) für einzelne Spalten ändern.
Im Internet finde ich leider nur Lösungen, die für eine komplette Tabelle gelten.
Schon einen eigenen CellRenderer verwendet? Dort müßte man eigentlich (abhängig von der column, die bei getTableCellRendererComponent übergeben wird) das Alignment setzen können (der DefaultTableCellRenderer ist ein JLabel)
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractCellEditor;
import javax.swing.JTable;
import javax.swing.table.TableCellEditor;
import javax.swing.JLabel;
/**
*
* @author vladimir.petrenko
*/
public class LabelEditor extends AbstractCellEditor
implements TableCellEditor,
ActionListener {
String text;
JLabel label;
protected static final String EDIT = "edit";
public LabelEditor() {
label= new JLabel();
label.setHorizontalAlignment(JLabel.CENTER);
}
public void actionPerformed(ActionEvent e) {
if (EDIT.equals(e.getActionCommand())) {
//The user has clicked the cell, so
//bring up the dialog.
label.setText(text);
fireEditingStopped(); //Make the renderer reappear.
} else { //User pressed dialog's "OK" button.
text = label.getText();
}
}
//Implement the one CellEditor method that AbstractCellEditor doesn't.
public Object getCellEditorValue() {
return label.getText();
}
//Implement the one method defined by TableCellEditor.
public Component getTableCellEditorComponent(JTable table,
Object value,
boolean isSelected,
int row,
int column) {
label.setText((String)value);
return label;
}
}
public class LabelRenderer extends JLabel implements TableCellRenderer {
public LabelRenderer() {
setOpaque(true); //MUST do this for background to show up.
}
public Component getTableCellRendererComponent(
JTable table, Object string,
boolean isSelected, boolean hasFocus,
int row, int column) {
setText((String)string);
return this;
}
}
[/code]