Hallo zusammen ich Bins wieder
versuch schon den ganzen tag bei meinem JTable es so einzurichten das ich die einzelne Zelle färbt bei negativ rot bei positiv grün bei 0 gelb.
ich krieg es hin die ganze Tabelle zu färben aber auf die einzelne Zelle komm ich nicht hin
Tabelle sieht so aus und die Letzt spalte (DIFFERENZ) soll die Farbe sich dementsprechend anpassen
versuch schon den ganzen tag bei meinem JTable es so einzurichten das ich die einzelne Zelle färbt bei negativ rot bei positiv grün bei 0 gelb.
ich krieg es hin die ganze Tabelle zu färben aber auf die einzelne Zelle komm ich nicht hin
Java:
package Panels;
import java.awt.Font;
import java.sql.SQLException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import systeme.MySQLConnection1;
/**
*
* @author OEM
*/
public class DatenTabelle extends JFrame {
public static JFrame frame;
static JScrollPane scl_panl;
static JTable tbl_daten;
private static Object[][] rowData = {};
private static Object[] columnNames2 = {"Ausgabe/Jahr", "Alter Stand", "neue Abos", "gekündigte Abos", "Aktuelle Abos", "AboZiel", "Differenz"};
MySQLConnection1 mySQL;
String addieren, div, alterstand;
double Umsatz, Umsatzminus;
DefaultTableModel model;
int[] differenz;
int alteAusgabe, altesJahr, summe;
public DatenTabelle(int[] x, int[] Ausgabe, int Menge, String AboID, int[] y, int Ausgaben, int alteAbos_add, int[] y_add, int[] y_div, int[] abo_kostenlos, int[] Aboziel) throws SQLException {
mySQL = new MySQLConnection1();
model = new DefaultTableModel(rowData, columnNames2);
setTitle("Datentabelle");
setResizable(false);
setSize(122 * columnNames2.length, 55 + 35 * x.length);
if (55 + 35 * x.length >= 1000) {
setSize(122 * columnNames2.length, 1000);
}
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment(JLabel.CENTER);
System.out.println("Panels.DatenTabelle.<init>()" + x.length + " " + Ausgabe.length);
differenz = new int[x.length];
for (int i = 0; i < x.length; i++) {
if (x[i] < 89) {
x[i] += 2000;
} else {
x[i] += 1900;
}
if (i == 0) {
alterstand = String.valueOf(alteAbos_add);
} else {
alterstand = String.valueOf(y[i - 1]);
}
differenz[i]= y[i]-Aboziel[i];
model.addRow(new Object[]{Ausgabe[i] + "/" + x[i] //Ausgabe/Jahr
,
alterstand //"Alter Stand"
,
y_add[i] //"neue Abos"
,
y_div[i] //"gekündigte Abos"
,
y[i] - 1 //"Aktuelle Abos"
,
Aboziel[i]
,
differenz[i]}); //"Umsatz"
}
scl_panl = new JScrollPane();
tbl_daten = new JTable(model) {
@Override
public boolean isCellEditable(int x, int y) {
return false;
}
};
System.out.println(model + " model");
for (int i = 0; i < columnNames2.length; i++) {
tbl_daten.setFont(new Font("Arial", 0, 15));
tbl_daten.setRowHeight(30);
tbl_daten.getColumnModel().getColumn(i).setCellRenderer(rightRenderer);
}
scl_panl.setViewportView(tbl_daten);
add(scl_panl);
}
}
Tabelle sieht so aus und die Letzt spalte (DIFFERENZ) soll die Farbe sich dementsprechend anpassen