السلام عليكم ورحمة الله
لدي table اريد جعل صفوفه مختلفة الالوان بحيث الفردي بلون والزوجي بلون
بحثت في الكلاس jtable ولم اجد ما يساعدني
سوى هذا الكود
public Component getTableCellRendererComponent
(JTable table, Object value, boolean selected, boolean focused, int row, int column)
{
setEnabled(table == null || table.isEnabled()); // see question above
if ((row % 2) == 0)
setBackground(Color.green);
else
setBackground(Color.white);
super.getTableCellRendererComponent(table, value, selected, focused, row, column);
return this;
}هل هذا يساعدني في المطلوب
كيف اقوم بتغير لون الصفوف باستخدامه زما هي ال
Object value, boolean selected, boolean focused, int row, int column
هذا هو الكود الخاص بي الذي اريد تغيره لكنه يعتمد على classes اخرى
/**
* @(#)AnswerReport.java
*
*
* @author
* @version 1.00 2012/1/12
*/
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.JTableHeader;
import javax.swing.table.DefaultTableCellRenderer;
public class AnswerReport extends DefaultTableCellRenderer{
public static boolean visable=false;
static JFrame frame = new JFrame("Answer Report");
public static javax.swing.JTable table = new JTable();
static DefaultTableModel jdtm= new DefaultTableModel();
Font font= new Font("Aparajita", Font.BOLD + Font.ITALIC,20);
public AnswerReport() {
table.setModel(jdtm);
// table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
jdtm.addColumn("Q-number");
jdtm.addColumn("Qustion");
jdtm.addColumn("Answer");
jdtm.addColumn("TrueAnswer");
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
// Set the first visible column to 100 pixels wide
int vColIndex = 1;int vColIndex2 = 3;
TableColumn col = table.getColumnModel().getColumn(vColIndex);
TableColumn col2 = table.getColumnModel().getColumn(vColIndex2);
int width = 500;
col.setPreferredWidth(width);
col2.setPreferredWidth(width);
table.getTableHeader().setFont(font);
table.getTableHeader().setBackground(Color.blue);
table.setGridColor(Color.blue);
// Make the frame
frame.setSize(1300,700);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Action when window closes
// Make table
JScrollPane scrollPane = new JScrollPane(table); // Make scrollpane with table
// Add scrollpane with table to the frame and show the frame to user
frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
frame.getContentPane().add(new JLabel(new ImageIcon(getClass().getResource("user_header.jpg")) ), BorderLayout.NORTH);
frame.getContentPane().add(new JLabel(" ") , BorderLayout.EAST);
frame.getContentPane().add(new JLabel(" ") , BorderLayout.WEST);
frame.getContentPane().add(new JLabel(" ") , BorderLayout.SOUTH);
frame.setVisible(true);
for(int i=0;i<user_interface.choice.size();i++){
String num=" "+(i+1);
String qustion=Connect.qustion.get(user_interface.choice.get(i));
String tr=user_interface.answer.get(i);
String you=user_interface.answer2.get(i);
String answerd ;
if(tr.equals(you)){
answerd=" Correct ";
}
else
answerd="not correct";
String Trueanswerd;
if(answerd.equals("not correct")){
Trueanswerd=user_interface.answer.get(i);
}
else
Trueanswerd="";
Object obj[] = {num,qustion,answerd,Trueanswerd};
jdtm.addRow(obj);
Object o = new Object();
}
}
public static void setvisable(boolean visb){
visable=visb;
frame.setVisible(visb);
}
public Component getTableCellRendererComponent (JTable table, Object value, boolean selected, boolean focused, int row, int column)
{
setEnabled(table == null || table.isEnabled()); // see question above
if ((row % 2) == 0)
setBackground(Color.green);
else
setBackground(Color.white);
super.getTableCellRendererComponent(table, value, selected, focused, row, column);
return this;
}
}