Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* pierwsze @@@@@@@@@@ */
- public class Komunikator extends JFrame implements ActionListener, KeyListener {
- JTextArea obszar;
- JPanel dolny;
- Box prawy;
- JTextField wpis;
- JButton wyslij;
- JButton importuj;
- JButton eksportuj;
- static String plik = "komunikator.txt"; //sciezka do pliku
- Komunikator() {
- super("Mój pierwszy nibyKomunikator");
- }
- public void init() {
- setSize(400, 400);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- setLayout(new BorderLayout());
- obszar = new JTextArea();
- obszar.setEditable(false);
- obszar.setMinimumSize(new Dimension(200,100));
- add(new JScrollPane(obszar), BorderLayout.CENTER);
- dolny = new JPanel();
- dolny.setLayout(new FlowLayout());
- wpis = new JTextField(20);
- wpis.addKeyListener(this);
- dolny.add(wpis);
- wyslij = new JButton("Wyślij");
- wyslij.addActionListener(this);
- dolny.add(wyslij);
- add(dolny, BorderLayout.SOUTH);
- prawy = Box.createVerticalBox();
- importuj = new JButton(" Importuj ");
- eksportuj = new JButton("Eksportuj");
- prawy.add(Box.createVerticalStrut(100));
- prawy.add(importuj);
- prawy.add(Box.createVerticalStrut(30));
- prawy.add(eksportuj);
- this.add(prawy, BorderLayout.EAST);
- importuj.addActionListener(this);
- eksportuj.addActionListener(this);
- // dla estetyki, aby obszar tekstowy
- // nie wypełniał okna "po brzegi"
- add(new JPanel(), BorderLayout.NORTH);
- //add(new JPanel(), BorderLayout.EAST);
- add(new JPanel(), BorderLayout.WEST);
- setVisible(true);
- // ustawiam kursor (fokus) na polu 'wpis'
- wpis.requestFocus();
- }
- private void eksportuj() throws IOException
- { //trzyetapowy konstruktor
- BufferedWriter out = new BufferedWriter( //operacje buforowe
- new OutputStreamWriter( //binarny do tekstowego
- new FileOutputStream(plik))); //kontakt z plikiem
- out.write(obszar.getText());
- out.close();
- }
- private void importuj() throws IOException
- {
- BufferedReader in = new BufferedReader( //operacje buforowe
- new InputStreamReader( //binarny do tekstowego
- new FileInputStream(plik))); //kontakt z plikiem
- String linia;
- while(true)
- {
- linia = in.readLine();
- if(linia == null) break;
- obszar.append(linia + "\n");
- }
- in.close();
- }
- public void actionPerformed(ActionEvent e) {
- Object zrodlo = e.getSource();
- if(zrodlo == wyslij) {
- obszar.append(wpis.getText() + "\n");
- wpis.setText("");
- wpis.requestFocus();
- }
- else if(zrodlo == importuj)
- {
- try {
- importuj();
- } catch (IOException ex) {}
- }
- else if(zrodlo == eksportuj)
- {
- try {
- eksportuj();
- } catch (IOException ex) {}
- }
- }
- public void keyPressed(KeyEvent e) {
- if(e.getKeyCode() == KeyEvent.VK_ENTER) {
- obszar.append(wpis.getText() + "\n");
- wpis.setText("");
- }
- }
- public void keyReleased(KeyEvent e) {}
- public void keyTyped(KeyEvent e) {}
- public static void main(String a[]) {
- Komunikator k = new Komunikator();
- k.init();
- }
- }
- /* drugie @@@@@@@@@@ */
- class LatajacyTekst extends Thread
- {
- PanelWygaszacza gdzieMamLatac;
- LatajacyTekst(String tekst, PanelWygaszacza g)
- {
- this.tekst = tekst;
- this.gdzieMamLatac = g;
- maxX = gdzieMamLatac.getBounds().width;
- maxY = gdzieMamLatac.getBounds().height;
- minX = 20;
- minY = 20;
- }
- String tekst;
- int x,y; //wspolrzedne
- int maxX, maxY, minX, minY;
- public void run()
- {
- Random losowanie = new Random();
- while(true)
- {
- x = minX + losowanie.nextInt(maxX+1-minX);
- y = minY + losowanie.nextInt(maxY+1-minY);
- gdzieMamLatac.repaint();
- try {
- sleep(1000);
- } catch (Exception ex) {}
- }
- }
- }
- class PanelWygaszacza extends JPanel
- {
- Wygaszacz okno;
- PanelWygaszacza(Wygaszacz wygaszacz)
- {
- this.okno = wygaszacz;
- }
- protected void paintComponent(Graphics g)
- {
- super.paintComponent(g);
- for(LatajacyTekst t : okno.tablicaTekstow)
- {
- g.drawString(t.tekst, t.x, t.y);
- }
- }
- }
- public class Wygaszacz extends JFrame
- {
- PanelWygaszacza panel;
- LatajacyTekst tablicaTekstow[];
- private void init()
- {
- panel = new PanelWygaszacza(this);
- add(panel);
- setSize(500, 300);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- setVisible(true);
- setTitle("Moj Wygaszacz");
- tablicaTekstow = new LatajacyTekst[]
- {
- new LatajacyTekst("Cokolwiek", panel),
- new LatajacyTekst("Costam", panel),
- new LatajacyTekst("Fruwam", panel)
- };
- for(LatajacyTekst tekst : tablicaTekstow)
- {
- tekst.start();
- }
- }
- public static void main(String args[])
- {
- Wygaszacz wygaszacz = new Wygaszacz();
- wygaszacz.init();
- }
- }
- /* trzecie @@@@@@@@@@ */
- abstract class LatajacyObiekt extends Thread {
- PanelWygaszacza gdzieMamLatac;
- int x,y; //wspolrzedne
- int maxX, maxY, minX, minY;
- LatajacyObiekt(PanelWygaszacza g)
- {
- this.gdzieMamLatac = g;
- maxX = gdzieMamLatac.getBounds().width;
- maxY = gdzieMamLatac.getBounds().height;
- minX = 20;
- minY = 20;
- }
- public void run()
- {
- Random losowanie = new Random();
- while(true)
- {
- x = minX + losowanie.nextInt(maxX+1-minX);
- y = minY + losowanie.nextInt(maxY+1-minY);
- gdzieMamLatac.repaint();
- try {
- sleep(1000);
- } catch (Exception ex) {}
- }
- }
- abstract void rysuj(Graphics g);
- }
- class LatajacyTekst extends LatajacyObiekt
- {
- String tekst;
- LatajacyTekst(String tekst, PanelWygaszacza g)
- {
- super(g);
- this.tekst = tekst;
- }
- public void rysuj(Graphics g){
- g.drawString(tekst, x, y);
- }
- }
- class LatajaceKolo extends LatajacyObiekt
- {
- int r;
- LatajaceKolo(int r, PanelWygaszacza g)
- {
- super(g);
- this.r = r;
- }
- public void rysuj(Graphics g){
- g.drawOval(x, y, r, r);
- }
- }
- class PanelWygaszacza extends JPanel
- {
- Wygaszacz okno;
- PanelWygaszacza(Wygaszacz wygaszacz)
- {
- this.okno = wygaszacz;
- }
- protected void paintComponent(Graphics g)
- {
- super.paintComponent(g);
- for(LatajacyObiekt t : okno.tablicaTekstow)
- {
- //g.drawString(t.tekst, t.x, t.y);
- t.rysuj(g);
- }
- }
- }
- public class Wygaszacz extends JFrame
- {
- PanelWygaszacza panel;
- LatajacyObiekt tablicaTekstow[];
- private void init()
- {
- panel = new PanelWygaszacza(this);
- add(panel);
- setSize(500, 300);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- setVisible(true);
- setTitle("Moj Wygaszacz");
- tablicaTekstow = new LatajacyObiekt[]
- {
- new LatajacyTekst("Cokolwiek", panel),
- new LatajaceKolo(30, panel),
- new LatajacyTekst("Fruwam", panel)
- };
- for(LatajacyObiekt tekst : tablicaTekstow)
- {
- tekst.start();
- }
- }
- public static void main(String args[])
- {
- Wygaszacz wygaszacz = new Wygaszacz();
- wygaszacz.init();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement