package javaapplication5; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.IOException; //import java.io.FileWriter; //import java.io.IOException; //import java.io.FileInputStream; //import java.io.FileOutputStream; //import javax.swing.filechooser.FileSystemView; /** * @author Daxo */ public class Gui implements ActionListener { JFrame frame; JTextField text1, text2, text3; JLabel label1, label2, label3, label4; JButton but1, but2, but3, but4; Container mainPane; JPanel panel1, panel2, panel3, panel4; JFileChooser fc; KopiujDane kopiuj = new KopiujDane(); File file1 = null; File file2 = null; public Gui() { //W konstruktorze tworzymy GUI frame = new JFrame("Kopiuj"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainPane = frame.getContentPane(); //pobranie referencji głównego panelu ramki mainPane.setLayout(new BoxLayout(mainPane, BoxLayout.Y_AXIS)); //dla mainPane użyjemy BoxLayout frame.setMinimumSize(new Dimension(450, 250)); panel1 = new JPanel(new FlowLayout(FlowLayout.CENTER)); JLabel label1 = new JLabel("ścieżka1 "); panel1.add(label1); text1 = new JTextField(20); text1.setEditable(false); //blokowanie wpisania tekstu but2 = new JButton("wybierz1"); //ten przycisk wyświetla pierwszą połowę napisu but2.addActionListener(this); panel1.add(but2); panel1.add(text1); JPanel panel2 = new JPanel(new FlowLayout(FlowLayout.CENTER)); JLabel label2 = new JLabel("ścieżka2 "); panel2.add(label2); text2 = new JTextField(20); text2.setEditable(false); but3 = new JButton("wybierz2"); //ten przycisk wyświetla pierwszą połowę napisu but3.addActionListener(this); panel2.add(but3); panel2.add(text2); panel3 = new JPanel(new FlowLayout(FlowLayout.CENTER)); panel4 = new JPanel(new FlowLayout(FlowLayout.CENTER)); but1 = new JButton("kopiuj"); //ten przycisk wyświetla pierwszą połowę napisu but1.addActionListener(this); text3 = new JTextField(7); JLabel label4 = new JLabel("ilość wierszy "); panel3.add(label4); panel3.add(but1); panel3.add(text3); label3 = new JLabel("Wybierz pliki do kopiowania"); panel4.add(label3); mainPane.add(panel1); mainPane.add(panel2); mainPane.add(panel3); mainPane.add(panel4); //FileChooser z filtrem na pliki txt - po przecinku można dodawać kolejne rozszerzenia -> "txt", "cfg"); fc = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("Pliki tekstowe", "txt"); //filtr plikow txt fc.setFileFilter(filter); frame.pack(); frame.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("wybierz1")) { int returnVal1 = fc.showOpenDialog(frame); if (returnVal1 == JFileChooser.APPROVE_OPTION) { file1 = fc.getSelectedFile(); label3.setText("Wybrano plik"); text1.setText(fc.getSelectedFile().getPath()); } else { label3.setText("Nie wybrano pliku"); } } if (e.getActionCommand().equals("wybierz2")) { int returnVal2 = fc.showOpenDialog(frame); if (returnVal2 == JFileChooser.APPROVE_OPTION) { file2 = fc.getSelectedFile(); label3.setText("Wybrano plik"); text2.setText(fc.getSelectedFile().getPath()); System.out.println(fc.getSelectedFile()); } else { label3.setText("Niewybrano pliku "); } } if (e.getActionCommand().equals("kopiuj")) { int lines; try { lines = Integer.valueOf(text3.getText()); } catch (IllegalArgumentException ex) { label3.setText("Liczba wierszy musi być liczbą."); return; } try { kopiuj.copy(file1, file2, lines); label3.setText("Skopiowano!"); } catch (IllegalArgumentException ex) { label3.setText(ex.getMessage()); } catch (IOException e1) { label3.setText("Wystąpił błąd wejścia/wyjścia."); } } } }