TableCellRenderer Background variiert darstellen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,


ich habe einen TableCellRenderer (extends DefaultTableCellRenderer) und ändere in bestimmten Fällen die Hintergrundfarbe (in getTableCellRendererComponent() ).

Das ganze stellt einen Kalender dar und nun ist es nötig mit nur einer Farbe variiert das Wochenende darzustellen (d.h. nicht zwei verschiedene Farben). Der Benutzer wählt eben nur eine Farbe zur Markierung spezieller Tage auch wenn jetzt z.B. alle Kalendertage so eingefärbt werden soll die Wochenendstruktur erkennbar bleiben - aber eben ohne Einsatz einer zweiten Farbe.

Nun die Frage hier ob und wie ich es mache so eine Zelle variiert darzustellen (ideal wäre z.b. Weiss mit dieser Farbe schraffiert, gepunktet...). Hat da einer Tipps?

Die absolute Notlösung wäre wirklich den RGB-Wert zu manipulieren, d.h. den Farbton leicht zu ändern. Was wäre hier eine gute Möglichkeit? d.h. also die Farbe ist (bei jeden möglichen RGB-Werten nur ganz leicht verändert).
Oder hat jemand noch eine kreative Idee eine Border einzusetzen?
Wie gesagt wären das aber nur Notlösungen, eine Scraffur oder ähnliches wäre super.
 

kleiner_held

Top Contributor
meinst du sowas?
Code:
public class Test
{
    public static void main(String[] args)
    {
        final JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        JTable table = new JTable(new String[][] {{"1", "2", "3"}, {"1", "2", "3"}}, new String[] {"A", "B", "C"});
        table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer()
        {
            private boolean paintSchraffur = false;
            private Color schraffurColor = Color.RED;
            private Color backgroundColor = null;

            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
            {
                paintSchraffur = row % 2 ==  column % 2;
                Component result =  super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
                        row, column);
                backgroundColor = result.getBackground();
                result.setBackground(null);
                return result;
            }
            
            protected void paintComponent(Graphics g)
            {
                int width = getWidth();
                int height = getHeight();
                Color oldColor = g.getColor();
                if (backgroundColor != null)
                {
                    g.setColor(backgroundColor); 
                    g.fillRect(0, 0, width, height);
                }
                if (paintSchraffur)
                {
                    
                    g.setColor(schraffurColor);
                   
                    for (int i = 0; i < height; i += 6)
                    {
                        g.fillRect(0, i, width, 3);
                    }
                }
                g.setColor(oldColor);
                super.paintComponent(g);
            }
        });
        JScrollPane scrollPane = new JScrollPane(table);
        scrollPane.setPreferredSize(new Dimension(100, 100));
        frame.setContentPane(scrollPane);
        frame.pack();
        frame.setVisible(true);
    }
}
 
G

Guest

Gast
ich bin ja doof, die Methode zu überschreiben, da hätte ich ja auch drauf kommen können.

Vielen dank!

Wobei der Code so nicht ganz compilierbar ist ;)

paintStraffur


Jetzt muss ich nur noch ein wenig basteln, dass es vernünftig aussieht in meinem Fall.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S TableCellRenderer: JLabel-Background in JPanel AWT, Swing, JavaFX & SWT 7
B TableCellRenderer rendert Integer/Boolean Felder nicht AWT, Swing, JavaFX & SWT 4
M Swing TableCellRenderer elegant anpassen AWT, Swing, JavaFX & SWT 3
D Swing Mit TableCellRenderer einzelne Zellen markieren AWT, Swing, JavaFX & SWT 3
O Swing TableCellRenderer und JComboBox AWT, Swing, JavaFX & SWT 4
C Swing TableCellRenderer: setText() vs. setIcon() AWT, Swing, JavaFX & SWT 5
E Swing TableCellRenderer für alle Splaten setzen?! AWT, Swing, JavaFX & SWT 3
M gleicher TableCellRenderer für mehrere unterschiedliche Tabellen AWT, Swing, JavaFX & SWT 5
A Swing TableCellRenderer ändert die Zeilenfarbe zu spät AWT, Swing, JavaFX & SWT 3
J Swing JTable, eigener TableCellRenderer Keine Anzeige in den Zellen AWT, Swing, JavaFX & SWT 8
J NullPointerException bei Benutzung vom TableCellRenderer AWT, Swing, JavaFX & SWT 3
U TableCellRenderer: Problem mit Timestamp/Date AWT, Swing, JavaFX & SWT 2
U TableCellRenderer UND prepareRenderer AWT, Swing, JavaFX & SWT 12
C Swing TableCellRenderer AWT, Swing, JavaFX & SWT 10
U TableCellRenderer und setBackground AWT, Swing, JavaFX & SWT 20
H Swing TableCellRenderer für verschiedene Spalten AWT, Swing, JavaFX & SWT 11
C Swing Problem mit TableCellRenderer in Verbindung mit TableRowSorter AWT, Swing, JavaFX & SWT 2
R JTable - TableCellRenderer AWT, Swing, JavaFX & SWT 3
R JTable - TableCellRenderer - BufferedImage AWT, Swing, JavaFX & SWT 9
R JTable mit TableCellRenderer AWT, Swing, JavaFX & SWT 10
R JTable - TableCellRenderer AWT, Swing, JavaFX & SWT 2
D TableCellRenderer rendert einfach nicht! AWT, Swing, JavaFX & SWT 4
S TableCellRenderer setForeground AWT, Swing, JavaFX & SWT 5
I Problem mit TableCellRenderer AWT, Swing, JavaFX & SWT 3
K TableCellRenderer Problem AWT, Swing, JavaFX & SWT 3
F TableCellRenderer wie umsetzen? AWT, Swing, JavaFX & SWT 2
D JTable TableCellRenderer AWT, Swing, JavaFX & SWT 2
J JTable und TableCellRenderer AWT, Swing, JavaFX & SWT 2
P TableCellRenderer mit einem TableRowSorter AWT, Swing, JavaFX & SWT 4
D TableCellRenderer PRoblem AWT, Swing, JavaFX & SWT 3
G TableCellRenderer soll ganze ausgewählte Zeile markieren AWT, Swing, JavaFX & SWT 2
S TableCellRenderer deaktivieren AWT, Swing, JavaFX & SWT 13
J TableCellRenderer AWT, Swing, JavaFX & SWT 5
S JTree mal anders (TableCellRenderer) AWT, Swing, JavaFX & SWT 6
S TableCellRenderer, Performance AWT, Swing, JavaFX & SWT 9
M Objekt in TableCellRenderer packen, warum ein Fehler? AWT, Swing, JavaFX & SWT 2
T TableCellRenderer Problem AWT, Swing, JavaFX & SWT 6
B TableCellRenderer + JComboBoxen AWT, Swing, JavaFX & SWT 2
Juelin setzen background color für selected Row im Tableview AWT, Swing, JavaFX & SWT 21
izoards JavaFX Background Task warten auf Knopfdruck AWT, Swing, JavaFX & SWT 4
R Swing Background Image in JFrame implementieren AWT, Swing, JavaFX & SWT 40
W SWT hover-background-problem with first column in TreeViewer AWT, Swing, JavaFX & SWT 0
J 2D-Grafik Background einer Jpanel Klasse ändern AWT, Swing, JavaFX & SWT 1
J 2D-Grafik Background Image Klasse AWT, Swing, JavaFX & SWT 14
L JavaFX TableView background transparent machen AWT, Swing, JavaFX & SWT 7
M Swing JTable GroupableHeader Background Color AWT, Swing, JavaFX & SWT 4
V Graphics g - drawOval problem mit background AWT, Swing, JavaFX & SWT 1
J JavaFX TextArea dynamisch Icon im Background anzeigen AWT, Swing, JavaFX & SWT 2
ToBJo JavaFX "Blueprint" CSS Background AWT, Swing, JavaFX & SWT 4
vodkaz JButtonz Icon&Background AWT, Swing, JavaFX & SWT 3
F background bei JButton AWT, Swing, JavaFX & SWT 11
C [SWT] Widget Table verliert nach Sortierung farbige / eingefärbter Background / Zellen AWT, Swing, JavaFX & SWT 3
J JTextPane Background setzen AWT, Swing, JavaFX & SWT 6
Guybrush Threepwood JButton Background beim Klicken AWT, Swing, JavaFX & SWT 4
Luk10 Überschneidung von Image und Background AWT, Swing, JavaFX & SWT 7
G Model,Listener und background jobs AWT, Swing, JavaFX & SWT 4
J JMenu unterschiedliche Background einstellen AWT, Swing, JavaFX & SWT 5
O JTable label background und selection AWT, Swing, JavaFX & SWT 3
T Pseudo-Transparenz für Applets -> Background grabben AWT, Swing, JavaFX & SWT 15
P [SWT] Background-Image skalieren statt kacheln AWT, Swing, JavaFX & SWT 2
M JComboBox Selected-Background Farbe AWT, Swing, JavaFX & SWT 5
S noobfrage: background color wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
G background von JFrame funktioniert nicht AWT, Swing, JavaFX & SWT 9
G JFrame mit background bild -> verschiebt Buttons ? AWT, Swing, JavaFX & SWT 23
T Background Color JSpiner AWT, Swing, JavaFX & SWT 2
C Textfield Background auf Standard zurücksetzen AWT, Swing, JavaFX & SWT 2
S JTextArea background Transparent geht nicht AWT, Swing, JavaFX & SWT 23
A Background Image auf SWT Oberfläche legen AWT, Swing, JavaFX & SWT 3
A Probleme mit Windows Style (Background) AWT, Swing, JavaFX & SWT 4
G anfängerfrage:background und buttonimages AWT, Swing, JavaFX & SWT 3
R JButton background verdeckt gemaltes AWT, Swing, JavaFX & SWT 6
Z JPanels spiegeln und JLabel Background-color AWT, Swing, JavaFX & SWT 4
M JTable background AWT, Swing, JavaFX & SWT 2
saxman23 JLabel mit Background und Foreground setzen AWT, Swing, JavaFX & SWT 3
data89 Eigener Button variiert in der Größe - Hilfee! AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben