Advertisement
fak123

PWSI_Wszystko

May 30th, 2015
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.14 KB | None | 0 0
  1. /* pierwsze @@@@@@@@@@ */
  2.  
  3. public class Komunikator extends JFrame implements ActionListener, KeyListener {
  4.  
  5.     JTextArea obszar;
  6.     JPanel dolny;
  7.     Box prawy;
  8.     JTextField wpis;
  9.     JButton wyslij;
  10.     JButton importuj;
  11.     JButton eksportuj;
  12.     static String plik = "komunikator.txt"; //sciezka do pliku
  13.  
  14.     Komunikator() {
  15.         super("Mój pierwszy nibyKomunikator");
  16.     }
  17.  
  18.     public void init() {
  19.         setSize(400, 400);
  20.         setDefaultCloseOperation(EXIT_ON_CLOSE);
  21.         setLayout(new BorderLayout());
  22.        
  23.         obszar = new JTextArea();
  24.         obszar.setEditable(false);
  25.         obszar.setMinimumSize(new Dimension(200,100));
  26.         add(new JScrollPane(obszar), BorderLayout.CENTER);
  27.        
  28.         dolny = new JPanel();
  29.         dolny.setLayout(new FlowLayout());
  30.         wpis = new JTextField(20);
  31.         wpis.addKeyListener(this);        
  32.         dolny.add(wpis);
  33.         wyslij = new JButton("Wyślij");
  34.         wyslij.addActionListener(this);
  35.         dolny.add(wyslij);
  36.         add(dolny, BorderLayout.SOUTH);
  37.  
  38.         prawy = Box.createVerticalBox();
  39.         importuj = new JButton(" Importuj ");
  40.         eksportuj = new JButton("Eksportuj");
  41.        
  42.        
  43.         prawy.add(Box.createVerticalStrut(100));
  44.         prawy.add(importuj);
  45.         prawy.add(Box.createVerticalStrut(30));
  46.         prawy.add(eksportuj);
  47.         this.add(prawy, BorderLayout.EAST);
  48.         importuj.addActionListener(this);
  49.         eksportuj.addActionListener(this);
  50.  
  51.      // dla estetyki, aby obszar tekstowy
  52.      // nie wypełniał okna "po brzegi"
  53.         add(new JPanel(), BorderLayout.NORTH);
  54.         //add(new JPanel(), BorderLayout.EAST);
  55.         add(new JPanel(), BorderLayout.WEST);
  56.  
  57.         setVisible(true);
  58.      // ustawiam kursor (fokus) na polu 'wpis'
  59.         wpis.requestFocus();
  60.     }
  61.     private void eksportuj() throws IOException
  62.     {   //trzyetapowy konstruktor
  63.         BufferedWriter out = new BufferedWriter( //operacje buforowe
  64.                                 new OutputStreamWriter( //binarny do tekstowego
  65.                                     new FileOutputStream(plik))); //kontakt z plikiem
  66.         out.write(obszar.getText());
  67.         out.close();
  68.     }
  69.     private void importuj() throws IOException
  70.     {
  71.         BufferedReader in = new BufferedReader( //operacje buforowe
  72.                                 new InputStreamReader( //binarny do tekstowego
  73.                                     new FileInputStream(plik))); //kontakt z plikiem
  74.         String linia;
  75.         while(true)
  76.         {
  77.             linia = in.readLine();
  78.             if(linia == null) break;
  79.             obszar.append(linia + "\n");
  80.         }
  81.         in.close();
  82.     }
  83.     public void actionPerformed(ActionEvent e) {
  84.         Object zrodlo = e.getSource();
  85.         if(zrodlo == wyslij) {
  86.             obszar.append(wpis.getText() + "\n");
  87.             wpis.setText("");
  88.             wpis.requestFocus();
  89.         }    
  90.         else if(zrodlo == importuj)
  91.         {
  92.             try {
  93.                 importuj();
  94.             } catch (IOException ex) {}
  95.         }
  96.         else if(zrodlo == eksportuj)
  97.         {
  98.             try {
  99.                 eksportuj();
  100.             } catch (IOException ex) {}
  101.         }
  102.     }
  103.  
  104.     public void keyPressed(KeyEvent e) {
  105.         if(e.getKeyCode() == KeyEvent.VK_ENTER) {
  106.             obszar.append(wpis.getText() + "\n");
  107.             wpis.setText("");
  108.         }
  109.     }
  110.     public void keyReleased(KeyEvent e) {}
  111.     public void keyTyped(KeyEvent e) {}
  112.  
  113.     public static void main(String a[]) {
  114.         Komunikator k = new Komunikator();
  115.         k.init();
  116.     }
  117.  
  118. }
  119.  
  120. /* drugie @@@@@@@@@@ */
  121.  
  122. class LatajacyTekst extends Thread
  123. {
  124.     PanelWygaszacza gdzieMamLatac;
  125.     LatajacyTekst(String tekst, PanelWygaszacza g)
  126.     {
  127.         this.tekst = tekst;
  128.         this.gdzieMamLatac = g;
  129.         maxX = gdzieMamLatac.getBounds().width;
  130.         maxY = gdzieMamLatac.getBounds().height;
  131.         minX = 20;
  132.         minY = 20;
  133.     }
  134.     String tekst;
  135.     int x,y; //wspolrzedne
  136.     int maxX, maxY, minX, minY;
  137.     public void run()
  138.     {
  139.         Random losowanie = new Random();
  140.        
  141.         while(true)
  142.         {
  143.             x = minX + losowanie.nextInt(maxX+1-minX);
  144.             y = minY + losowanie.nextInt(maxY+1-minY);
  145.             gdzieMamLatac.repaint();
  146.             try {
  147.                 sleep(1000);
  148.             } catch (Exception ex) {}
  149.         }
  150.     }
  151. }
  152. class PanelWygaszacza extends JPanel
  153. {
  154.     Wygaszacz okno;
  155.     PanelWygaszacza(Wygaszacz wygaszacz)
  156.     {
  157.         this.okno = wygaszacz;
  158.     }
  159.     protected void paintComponent(Graphics g)
  160.     {
  161.         super.paintComponent(g);
  162.         for(LatajacyTekst t : okno.tablicaTekstow)
  163.         {
  164.             g.drawString(t.tekst, t.x, t.y);
  165.         }
  166.     }
  167.    
  168. }
  169. public class Wygaszacz extends JFrame
  170. {
  171.     PanelWygaszacza panel;
  172.     LatajacyTekst tablicaTekstow[];
  173.     private void init()
  174.     {
  175.         panel = new PanelWygaszacza(this);
  176.         add(panel);
  177.         setSize(500, 300);
  178.         setDefaultCloseOperation(EXIT_ON_CLOSE);
  179.         setVisible(true);
  180.         setTitle("Moj Wygaszacz");
  181.         tablicaTekstow = new LatajacyTekst[]
  182.         {
  183.             new LatajacyTekst("Cokolwiek", panel),
  184.             new LatajacyTekst("Costam", panel),
  185.             new LatajacyTekst("Fruwam", panel)
  186.         };
  187.         for(LatajacyTekst tekst : tablicaTekstow)
  188.         {
  189.             tekst.start();
  190.         }
  191.     }
  192.     public static void main(String args[])
  193.     {
  194.         Wygaszacz wygaszacz = new Wygaszacz();
  195.         wygaszacz.init();
  196.     }
  197. }
  198.  
  199. /* trzecie @@@@@@@@@@ */
  200.  
  201. abstract class LatajacyObiekt extends Thread {
  202.     PanelWygaszacza gdzieMamLatac;    
  203.     int x,y; //wspolrzedne
  204.     int maxX, maxY, minX, minY;
  205.    
  206.     LatajacyObiekt(PanelWygaszacza g)
  207.     {        
  208.         this.gdzieMamLatac = g;
  209.         maxX = gdzieMamLatac.getBounds().width;
  210.         maxY = gdzieMamLatac.getBounds().height;
  211.         minX = 20;
  212.         minY = 20;
  213.     }
  214.    
  215.     public void run()
  216.     {
  217.         Random losowanie = new Random();
  218.        
  219.         while(true)
  220.         {
  221.             x = minX + losowanie.nextInt(maxX+1-minX);
  222.             y = minY + losowanie.nextInt(maxY+1-minY);
  223.             gdzieMamLatac.repaint();
  224.             try {
  225.                 sleep(1000);
  226.             } catch (Exception ex) {}
  227.         }
  228.     }
  229.    
  230.     abstract void rysuj(Graphics g);
  231. }
  232.  
  233. class LatajacyTekst extends LatajacyObiekt
  234. {
  235.     String tekst;
  236.    
  237.     LatajacyTekst(String tekst, PanelWygaszacza g)
  238.     {
  239.         super(g);
  240.         this.tekst = tekst;      
  241.     }  
  242.    
  243.     public void rysuj(Graphics g){
  244.         g.drawString(tekst, x, y);
  245.     }
  246. }
  247.  
  248. class LatajaceKolo extends LatajacyObiekt
  249. {
  250.     int r;
  251.    
  252.     LatajaceKolo(int r, PanelWygaszacza g)
  253.     {
  254.         super(g);
  255.         this.r = r;      
  256.     }  
  257.    
  258.     public void rysuj(Graphics g){
  259.         g.drawOval(x, y, r, r);
  260.     }
  261. }
  262.  
  263. class PanelWygaszacza extends JPanel
  264. {
  265.     Wygaszacz okno;
  266.     PanelWygaszacza(Wygaszacz wygaszacz)
  267.     {
  268.         this.okno = wygaszacz;
  269.     }
  270.     protected void paintComponent(Graphics g)
  271.     {
  272.         super.paintComponent(g);
  273.         for(LatajacyObiekt t : okno.tablicaTekstow)
  274.         {
  275.             //g.drawString(t.tekst, t.x, t.y);
  276.             t.rysuj(g);
  277.         }
  278.     }
  279.    
  280. }
  281. public class Wygaszacz extends JFrame
  282. {
  283.     PanelWygaszacza panel;
  284.     LatajacyObiekt tablicaTekstow[];
  285.     private void init()
  286.     {
  287.         panel = new PanelWygaszacza(this);
  288.         add(panel);
  289.         setSize(500, 300);
  290.         setDefaultCloseOperation(EXIT_ON_CLOSE);
  291.         setVisible(true);
  292.         setTitle("Moj Wygaszacz");
  293.         tablicaTekstow = new LatajacyObiekt[]
  294.         {
  295.             new LatajacyTekst("Cokolwiek", panel),
  296.             new LatajaceKolo(30, panel),
  297.             new LatajacyTekst("Fruwam", panel)
  298.         };
  299.         for(LatajacyObiekt tekst : tablicaTekstow)
  300.         {
  301.             tekst.start();
  302.         }
  303.     }
  304.     public static void main(String args[])
  305.     {
  306.         Wygaszacz wygaszacz = new Wygaszacz();
  307.         wygaszacz.init();
  308.     }
  309. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement