Hallo,
ich habe für meine JTable Zeilen eine abwechselnde Farbe einmal weiß und einmal hellgrau um die lesbarkeit zu erhöhen. Nun ist es so, wenn ich mit der Maus auf eine Zeile klicke sprich mousePress() die hellgrau sein muss dann wird diese weiß dargestellt? Will heißen das Klicken der Maus oder das setzen der Selektion macht aus hellgrau weiß.
Weiß jemand warum?
ich habe für meine JTable Zeilen eine abwechselnde Farbe einmal weiß und einmal hellgrau um die lesbarkeit zu erhöhen. Nun ist es so, wenn ich mit der Maus auf eine Zeile klicke sprich mousePress() die hellgrau sein muss dann wird diese weiß dargestellt? Will heißen das Klicken der Maus oder das setzen der Selektion macht aus hellgrau weiß.
Weiß jemand warum?
Code:
public class ImageListePanel extends JPanel implements ActionListener , ListSelectionListener
{
static final long serialVersionUID = 1L;
private SettingsPanel settings;
private JTextField homepageTF = new JTextField("bla");
private JButton loadListBT = new JButton("Liste laden");
private JButton saveListBT = new JButton("Liste speichern");
private JButton pasteUrlBT = new JButton();
private JButton refreshBT = new JButton();
private JButton addRowBT = new JButton("Add");
private JButton delRowBT = new JButton("Del");
private DefaultListModel listModel = new DefaultListModel();
private JList liste = new JList(listModel);
private JScrollPane listbereich = new JScrollPane(liste);
private String[] spaltennamen = {"Status" , "Gruppe" , "Programm" , "Aufgabe" , "Datenträger" };
private String[][] tabellendaten = new String [700][5];
DefaultTableModel dm;
JTable tabelle;
private DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); // Format für 24-Stunden-Anzeige
private String str = dateFormat.format(new Date());
protected Map<String, String> colormap = new HashMap<String, String>();
private Color selColor;
public ImageListePanel() {
setLayout(null);
add(homepageTF);
add(loadListBT);
add(saveListBT);
add(pasteUrlBT);
add(refreshBT);
add(listbereich);
add(addRowBT);
add(delRowBT);
homepageTF.setBounds(826,440,159,30);
listbereich.setBounds(826,0,160,340);
loadListBT.setBounds(826,468,158,60);
saveListBT.setBounds(826,529,158,60);
addRowBT.setBounds(826,341,40,40);
delRowBT.setBounds(867,341,40,40);
loadListBT.setIcon(new ImageIcon("images/pasteurl.png"));
saveListBT.setIcon(new ImageIcon("images/refresh.png"));
addRowBT.setIcon(new ImageIcon("images/addrow.png"));
delRowBT.setIcon(new ImageIcon("images/delrow.png"));
homepageTF.setMargin(new Insets(1, 3, 1, 1));
// btReset.setFont(new Font("Arial",Font.BOLD, 12));
dm = new DefaultTableModel(tabellendaten,spaltennamen);
tabelle = new JTable( dm ){
/**
*
*/
private static final long serialVersionUID = 1L;
Class[] types = new Class [] {
Boolean.class, String.class, String.class, String.class, String.class
};
@SuppressWarnings("unchecked")
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public Component prepareRenderer(TableCellRenderer renderer, int rowIndex, int vColIndex)
{
Component c = super.prepareRenderer(renderer, rowIndex, vColIndex);
/*---------------------------------------------------------------------------*/
if (rowIndex % 2 == 0 && !isCellSelected(rowIndex, vColIndex))
{
c.setBackground(new Color (245,245,245));
}
else
{
c.setBackground(getBackground());
}
/*----------------------------------------------------------------------------*/
return c;
}
};
/* tabelle.addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseMoved(final MouseEvent evt)
{
Point p = evt.getPoint();
int row = tabelle.rowAtPoint(p);
int column = tabelle.columnAtPoint(p);
tabelle.editCellAt(row, column);
}
});*/
/* tabelle.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent evt)
{
;}
});*/
tabelle.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
tabelle.setPreferredScrollableViewportSize(tabelle.getPreferredSize());
JScrollPane scrollPane = new JScrollPane( tabelle );
add(scrollPane);
scrollPane.setBounds(0,0,826,650);
tabelle.setRowHeight(25);
tabelle.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
tabelle.setAutoCreateRowSorter(true);
pasteUrlBT.addActionListener(this);
refreshBT.addActionListener(this);
liste.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
liste.setVisibleRowCount(1);
liste.addListSelectionListener((ListSelectionListener) this);
listbereich.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
listbereich.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
liste.setCellRenderer(new Renderer());
listModel.addElement("MPG Lehrer 125");
listModel.addElement("AEG Schüler xp");
listModel.addElement("MPG Lehrer 125");
listModel.addElement("AEG Schüler xp");
listModel.addElement("MPG Lehrer 125");
listModel.addElement("MPG Lehrer 125");
listModel.addElement("MPG Lehrer 125");
listModel.addElement("MPG Lehrer 125");
listModel.addElement("MPG Lehrer 125");
listModel.addElement("AEG Schüler xp");
listModel.addElement("MPG Lehrer 125");
listModel.addElement("AEG Schüler xp");
addRowBT.addActionListener(this);
delRowBT.addActionListener(this);
setColumnWidth();
}
public void setSP(SettingsPanel object) {
this.settings = object;
}
public void valueChanged( ListSelectionEvent e ) {
if(!e.getValueIsAdjusting()) {
homepageTF.setText(listModel.getElementAt(0).toString());
}
}
public void setColumnWidth() {
tabelle.getColumnModel().getColumn(0).setPreferredWidth(40);
tabelle.getColumnModel().getColumn(1).setPreferredWidth(50);
tabelle.getColumnModel().getColumn(2).setPreferredWidth(100);
tabelle.getColumnModel().getColumn(3).setPreferredWidth(500);
tabelle.getColumnModel().getColumn(4).setPreferredWidth(100);
}
public void actionPerformed(final ActionEvent e)
{
if(e.getSource().equals( addRowBT))
{
dm.insertRow(tabelle.getSelectedRow()+1, new Object[]{});
}
if(e.getSource().equals( delRowBT))
{
dm.removeRow(tabelle.getSelectedRow());
}
}
public void mousePressed(MouseEvent e)
{
dm.setValueAt("fff",1,1);
}
}