Created
June 13, 2015 20:55
-
-
Save piotr-rudnik/181f23234ca6481ec6a4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package hahahaha; | |
import java.awt.Color; | |
import java.awt.Component; | |
import java.awt.event.ComponentAdapter; | |
import java.awt.event.ComponentEvent; | |
import java.io.*; | |
import java.text.ParseException; | |
import java.text.SimpleDateFormat; | |
import java.util.ArrayList; | |
import java.util.Arrays; | |
import java.util.Calendar; | |
import java.util.Date; | |
import java.util.GregorianCalendar; | |
import java.util.List; | |
import java.util.Scanner; | |
import javax.swing.*; | |
import javax.swing.table.AbstractTableModel; | |
import javax.swing.table.DefaultTableCellRenderer; | |
import javax.swing.table.TableCellRenderer; | |
class TableModel implements TableCellRenderer | |
{ | |
TableCellRenderer ren; | |
TableModel(TableCellRenderer rend) | |
{ | |
ren=rend; | |
} | |
@Override | |
public Component getTableCellRendererComponent(JTable table, Object value, | |
boolean isSelected, boolean hasFocus, int row, int column) { | |
DefaultTableCellRenderer c = (DefaultTableCellRenderer) ren.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); | |
if (column == 2 && row>0) { | |
String date[] = c.getText().split("-"); | |
Calendar cal = Calendar.getInstance(); | |
cal.set(Integer.valueOf(date[0]), Integer.valueOf(date[1]), | |
Integer.valueOf(date[2])); | |
int day=cal.get(Calendar.DAY_OF_WEEK); | |
String days[]={"pon","wto","sro","czw","pia","sob","nie"}; | |
c.setText(days[day-1]); | |
} | |
if(row==0) | |
{ | |
c.setBackground(Color.GRAY); | |
return c; | |
} | |
if(column==3) | |
{ | |
String[] kolor=c.getText().split(","); | |
System.out.println(Arrays.toString(kolor)); | |
Color color=new Color(Integer.valueOf(kolor[0]),Integer.valueOf(kolor[1]),Integer.valueOf(kolor[2])); | |
c.setBackground(color); | |
c.setText(""); | |
}else c.setBackground(Color.white); | |
if(column==6) | |
{ | |
Integer bmi=Integer.valueOf(c.getText()); | |
System.out.println(bmi); | |
if(bmi<20) | |
{ | |
c.setBackground(Color.yellow); | |
return c; | |
} | |
// else c.setBackground(Color.white); | |
if(bmi>25) | |
{ | |
c.setBackground(Color.red); | |
return c; | |
} | |
// else c.setBackground(Color.white); | |
} | |
return c; | |
} | |
} | |
public class img { | |
public static void main(String[] args) throws FileNotFoundException { | |
generator(); | |
String [][]dane=read(); | |
JFrame frame=new JFrame("BMI"); | |
JPanel panel=new JPanel(); | |
Model model=new Model(dane); | |
JTable tabela=new JTable(model); | |
TableModel tabelmodel=new TableModel(tabela.getDefaultRenderer(Object.class)); | |
tabela.setModel(model); | |
tabela.setDefaultRenderer(Object.class, tabelmodel); | |
panel.add(tabela); | |
frame.addComponentListener(new ComponentAdapter() | |
{ | |
public void componentResized(ComponentEvent e) | |
{ | |
frame.setTitle(frame.getSize().toString()); | |
} | |
}); | |
frame.add(panel); | |
frame.setVisible(true); | |
frame.setSize(528,193); | |
frame.setLocation(200,200); | |
} | |
public static String[][] read() throws FileNotFoundException{ | |
File data=new File("data"); | |
String[][] dane=new String[9][]; | |
Scanner scan=new Scanner(data); | |
for(int i=0;i<9;i++) | |
{ | |
dane[i]=scan.nextLine().split(" "); | |
System.out.println(Arrays.deepToString(dane[i])); | |
} | |
return dane; | |
} | |
public static void generator() throws FileNotFoundException{ | |
File data=new File("data"); | |
PrintWriter pw=new PrintWriter(data); | |
String names[]= { | |
"Joanna", | |
"Jan", | |
"Michał", | |
"Zofia", | |
"Łukasz", | |
"Tomasz", | |
"Beata", | |
"Anna", | |
"Robert" | |
}; | |
String surname[]= { | |
"Kowalska", | |
"Kowalski", | |
"Nowak", | |
"Michalska", | |
"Gwozdz", | |
"Wójcik", | |
"Szczesniak", | |
"Pekala", | |
"Tarski" | |
}; | |
String month[]= { | |
"1990-11-11", | |
"1203-2-2", | |
"1992-3-1", | |
"1994-4-14", | |
"1995-5-15", | |
"1996-6-16", | |
"1997-7-17", | |
"1998-8-18", | |
"1999-9-19" | |
}; | |
String color[]= { | |
"255,255,102", | |
"255,51,204", | |
"0,0,255", | |
"128,0,0", | |
"0,102,204", | |
"0,255,0", | |
"255,204,153", | |
"102,153,0", | |
"153,102,0" | |
}; | |
String height[]= { | |
"170", | |
"182", | |
"177", | |
"162", | |
"178", | |
"180", | |
"160", | |
"164", | |
"176" | |
}; | |
String weight[]= { | |
"60", | |
"99", | |
"73", | |
"53", | |
"47", | |
"50", | |
"70", | |
"54", | |
"70" | |
}; | |
for(int i=0;i<9;i++) | |
{ | |
pw.write(names[i]+" "+surname[i]+" "+month[i]+" "+color[i]+" "+height[i]+" "+weight[i]+"\n"); | |
} | |
pw.close(); | |
} | |
} | |
class Model extends AbstractTableModel | |
{ | |
ArrayList<ArrayList> lista=new ArrayList<ArrayList>(); | |
Model(String [][]data) | |
{ | |
for(int i=0;i<9;i++) | |
{ | |
ArrayList row=new ArrayList(); | |
for(int j=0;j<6;j++) | |
{ | |
row.add(data[i][j]); | |
} | |
float wzrost=Float.valueOf(data[i][4])/100; | |
int waga=Integer.valueOf(data[i][5]); | |
row.add(Math.round(waga/Math.pow(wzrost, 2))); | |
lista.add(row); | |
} | |
ArrayList header=new ArrayList(); | |
header.add("Imie"); | |
header.add("Nazwisko"); | |
header.add("Dzien"); | |
header.add("Kolor"); | |
header.add("Wazrost"); | |
header.add("Waga"); | |
header.add("BMI"); | |
lista.add(0, header); | |
} | |
@Override | |
public int getRowCount() {return lista.size();} | |
@Override | |
public int getColumnCount() {return lista.get(0).size();} | |
@Override | |
public Object getValueAt(int rowIndex, int columnIndex) { | |
return lista.get(rowIndex).get(columnIndex); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment