Skip to content

Instantly share code, notes, and snippets.

@piotr-rudnik
Created June 13, 2015 20:55
Show Gist options
  • Save piotr-rudnik/181f23234ca6481ec6a4 to your computer and use it in GitHub Desktop.
Save piotr-rudnik/181f23234ca6481ec6a4 to your computer and use it in GitHub Desktop.
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