Skip to content
Snippets Groups Projects
Commit 5785ffa5 authored by Eckl, Máté's avatar Eckl, Máté
Browse files

8. labor összes feladat kész

Még késpbb megnézem, lehet-e egyszerűsíteni rajta, ez a színezős dolog nagyon gány...
parent e2059f9a
Branches
Tags v1.0.0
No related merge requests found
......@@ -58,6 +58,12 @@ public class Student implements Serializable {
// Osztályzat beállítása.
public void setGrade(Integer grade) {
if (grade>5)
{
this.grade = 1;
System.err.println("Nem lehetsz ötösnél jobb, ezért most megbuksz!");
}
else
this.grade = grade;
}
......
......@@ -90,6 +90,7 @@ public class StudentData extends AbstractTableModel{
break;
}
students.set(i, s);
this.fireTableRowsUpdated(i, i);
}
}
......
package swingmvclab;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
......@@ -20,6 +21,10 @@ import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.RowSorter;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
/*
* A megjelenítendõ ablakunk osztálya.
......@@ -44,6 +49,14 @@ public class StudentFrame extends JFrame {
//táblázat
JTable jt=new JTable(data);
jt.setFillsViewportHeight(rootPaneCheckingEnabled);
jt.setRowSorter(new TableRowSorter<StudentData>(data));
//színezés
jt.setDefaultRenderer(String.class, new StudentTableCellRenderer(jt.getDefaultRenderer(String.class)));
jt.setDefaultRenderer(Boolean.class, new StudentTableCellRenderer(jt.getDefaultRenderer(Boolean.class)));
jt.setDefaultRenderer(Number.class, new StudentTableCellRenderer(jt.getDefaultRenderer(Number.class)));
//-------------------------------------------------------------------------------------------------------
this.add(new JScrollPane(jt),BorderLayout.CENTER);
//hozzáadó sor
......@@ -115,4 +128,34 @@ public class StudentFrame extends JFrame {
StudentFrame sf = new StudentFrame();
sf.setVisible(true);
}
private class StudentTableCellRenderer implements TableCellRenderer {
private final TableCellRenderer renderer;
public StudentTableCellRenderer(TableCellRenderer defRenderer)
{
this.renderer = defRenderer;
}
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column)
{
Component component = renderer.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
Student actualStudent = data.students.get(table.getRowSorter().convertRowIndexToModel(row));
// megállapítjuk, hogy bukásra áll-e vagy sem,
Color bg;
// és ez alapján átállítjuk a komponens háttérszínét:
if(actualStudent.getGrade()<=1)
bg=Color.RED;
else
bg=Color.GREEN;
component.setBackground(bg);
return component;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment