Commit 46f3afd2 by Patryk Czarnik

JFileChooser

parent 759da731
package emps; package emps;
import java.io.BufferedReader; import java.io.*;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -15,8 +12,12 @@ public class ObslugaCSV { ...@@ -15,8 +12,12 @@ public class ObslugaCSV {
} }
public static List<Employee> wczytaj(String sciezka) { public static List<Employee> wczytaj(String sciezka) {
return wczytaj(new File(sciezka));
}
public static List<Employee> wczytaj(File plik) {
List<Employee> emps = new ArrayList<>(); List<Employee> emps = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader(sciezka))) { try (BufferedReader reader = new BufferedReader(new FileReader(plik))) {
reader.readLine(); // tylko po to, aby pominąć pierwszą linię reader.readLine(); // tylko po to, aby pominąć pierwszą linię
String linia; String linia;
while((linia = reader.readLine()) != null) { while((linia = reader.readLine()) != null) {
......
package emps;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.File;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class P4c_SredniaInteraktywnie {
public static void main(String[] args) {
JFileChooser chooser = new JFileChooser(".");
chooser.setFileFilter(new FileNameExtensionFilter("pliki CSV", "csv", "txt"));
int coSieStalo = chooser.showOpenDialog(null);
if(coSieStalo != JFileChooser.APPROVE_OPTION) {
// jeśli było Cancel lub wystąpił błąd
return;
}
File plik = chooser.getSelectedFile();
List<Employee> emps = ObslugaCSV.wczytaj(plik);
// zbieram listę stanowisk do wyboru
Set<String> jobs = new TreeSet<>();
for(Employee emp : emps) {
jobs.add(emp.getJobTitle());
}
Object szukanyJob = JOptionPane.showInputDialog(null, "Wybierz stanowisko",
"Pytanie", JOptionPane.QUESTION_MESSAGE, null, jobs.toArray(), null);
int suma = 0;
int ile = 0;
for(Employee emp : emps) {
if(emp.getJobTitle().equals(szukanyJob)) {
suma += emp.getSalary();
ile++;
}
}
if(ile == 0) {
JOptionPane.showMessageDialog(null, "Nie ma osób na takim stanowisku", "Brak danych", JOptionPane.WARNING_MESSAGE);
} else {
double srednia = (double)suma / ile;
JOptionPane.showMessageDialog(null, "średnia: " + srednia);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment