Ändern der Hintergrundfarbe von JTable

Ich habe eine Tabelle, aber das problem ist, dass das panel nicht zeigen seine Hintergrundfarbe. Ich habe versucht Einstellung der scrollpane-hintergrund, Farbe, etc. Aber es funktioniert nicht. Der Rahmen verfügt über eine Schaltfläche "Überprüfen", die, wenn Sie angeklickt wird, zeigt eine Tabelle unter sich. Bis es geklickt wird, wird der Bereich, in dem die Tabelle angezeigt wird solid gray. Ich will das ganze Teil zu sein Elfenbein hintergrund. Bitte helfen Sie mir das problem zu diagnostizieren.

try
{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection conn1=DriverManager.getConnection("jdbc:odbc:vasantham","","");
    Statement st1=conn1.createStatement();
    ResultSet rs1=st1.executeQuery("select * from try where DATEDIFF('d',NOW(),exdate) < 61 order by tname");
    ResultSetMetaData md1=rs1.getMetaData();
    int cols1=md1.getColumnCount();
    model1=new DefaultTableModel();
    model1.addColumn("Purpose");
    model1.addColumn("Name");
    model1.addColumn("Composition");
    model1.addColumn("Expiry");
    model1.addColumn("Stock");
    model1.addColumn("Cost");
    model1.addColumn("Type");
    model1.addColumn("Supplier");
    model1.addColumn("Supplier Number");
    model1.addColumn("Rack");
    table1=new JTable(model1);
    Color ivory=new Color(255,255,208);
    table1.setOpaque(false);
    table1.setBackground(ivory);
    String[] tabledata1=new String[cols1];
    int i=0;
    while(rs1.next())
    {
        for(i=0;i<cols1;i++)
        {
            if(i==3)
            {
                Date intr1=(rs1.getDate(i+1));
                tabledata1[i]=formatter1.format(intr1);
            }
            else
            tabledata1[i]=rs1.getObject(i+1).toString();
        }
        model1.addRow(tabledata1);
    }
    JScrollPane scroll1 = new JScrollPane(table1);
    scroll1.setBackground(new Color(255,255,208));
    scroll1.getViewport().setBackground(ivory);
    panel1.setLayout(new BorderLayout());
    panel1.setBackground(ivory);
    table1.getTableHeader().setBackground(ivory);
    panel1.add(scroll1,BorderLayout.CENTER);
    frame1.add(panel1,BorderLayout.CENTER);
    conn1.close();
}

Ändern der Hintergrundfarbe von JTable

Völlig unabhängig ... vermeiden Abfragen der Datenbank auf dem Event Dispatch Thread. Siehe Concurrency in Swing für mehr info
Dies ist eine separate Methode addTable'. Es muss einberufen werden, in der actionPerformed. Wenn nicht hier, wo dann soll ich es sagen ,Sir?
Die Datenbank-Abfrage passieren soll, auf einem worker-thread zu vermeiden, blockiert den EDT. Zum Beispiel die SwingWorker Klasse kann verwendet werden, für die

InformationsquelleAutor Gomathi | 2012-07-23

Schreibe einen Kommentar