Advertisement
Guest User

Untitled

a guest
Jan 20th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.75 KB | None | 0 0
  1. package michal_gornik_ajecia_11;
  2.  
  3. import javax.swing.*;
  4. import java.awt.*;
  5. import java.awt.event.*;
  6. import java.io.BufferedWriter;
  7. import java.io.File;
  8. import java.io.FileReader;
  9. import java.io.FileWriter;
  10. import java.io.IOException;
  11. import java.io.LineNumberReader;
  12. import javax.swing.event.ChangeEvent;
  13. import javax.swing.event.ChangeListener;
  14. import javax.swing.event.ListSelectionEvent;
  15. import javax.swing.event.ListSelectionListener;
  16.  
  17. public class Michal_gornik_ajecia_11 {
  18.     private JFrame mainFrame;
  19.     private JFrame mainFrame2;
  20.     private JTextArea textArea;
  21.     private JTextArea textArea2;
  22.     JList list;
  23.     JList styl;
  24.     String fonts[];
  25.     ListSelectionModel lista_modeli;
  26.     ListSelectionModel lista_styli;
  27.     int czcionka=0;
  28.     int rozmiar_czcionki=12;
  29.     int styl_czcionki=0;
  30.  
  31.     public Michal_gornik_ajecia_11(){
  32.         utworzGUI();
  33.     }
  34.    
  35.    
  36.    
  37.     public static void main(String[] args){      
  38.         EventQueue.invokeLater(new Runnable(){
  39.             @Override
  40.             public void run(){
  41.                 Michal_gornik_ajecia_11 notatnik=new Michal_gornik_ajecia_11();
  42.                 notatnik.showMenuDemo();
  43.             }
  44.         });
  45.     }
  46.     private void utworzGUI(){
  47.         mainFrame=new JFrame("Notatnik");
  48.         mainFrame.setSize(1000,800);
  49.      
  50.         textArea=new JTextArea();
  51.         textArea.setLineWrap(true);
  52.         textArea.setWrapStyleWord(true);      
  53.         textArea.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8));
  54.      
  55.         JScrollPane scrollTextArea = new JScrollPane(textArea, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
  56.      
  57.         mainFrame.add(scrollTextArea);
  58.         mainFrame.setVisible(true);  
  59.      
  60.         mainFrame.addWindowListener(new WindowAdapter(){
  61.             @Override
  62.             public void windowClosing(WindowEvent windowEvent){
  63.                 System.exit(0);
  64.             }        
  65.         });
  66.     }
  67.    
  68.     private void utworzGUI2(){
  69.         mainFrame2=new JFrame("Ustawienia");
  70.         mainFrame2.setLayout(new GridLayout(0,4));
  71.         mainFrame2.setSize(900,400);
  72.         mainFrame2.setVisible(true);
  73.        
  74.         textArea2=new JTextArea();
  75.         textArea2.setText(textArea.getText());
  76.         textArea2.setLineWrap(true);
  77.         textArea2.setWrapStyleWord(true);      
  78.         textArea2.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8));
  79.         textArea2.setVisible(true);
  80.         textArea2.setSize(200,200);
  81.        
  82.         JScrollPane scrollTextArea=new JScrollPane(textArea2, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);  
  83.        
  84.         mainFrame2.add(scrollTextArea);
  85.                
  86.         fonts=GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
  87.        
  88.         list=new JList(fonts); //data has type Object[]
  89.         list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
  90.         list.setLayoutOrientation(JList.VERTICAL);
  91.         list.setVisibleRowCount(-1);
  92.        
  93.         lista_modeli=list.getSelectionModel();
  94.         lista_modeli.addListSelectionListener(new zatwierdzenie_czcionki());
  95.        
  96.         JScrollPane listScroller=new JScrollPane(list);
  97.         listScroller.setPreferredSize(new Dimension(200, 200));
  98.        
  99.         mainFrame2.add(listScroller);
  100.        
  101.         SpinnerModel rozmiar=new SpinnerNumberModel(12,1,100,1);
  102.         JSpinner rozpietosc=new JSpinner(rozmiar);
  103.         rozpietosc.setPreferredSize(new Dimension(200,40));
  104.         rozpietosc.setFont(rozpietosc.getFont().deriveFont(20f));
  105.         mainFrame2.add(rozpietosc);
  106.        
  107.         rozpietosc.addChangeListener(new ChangeListener(){
  108.             @Override
  109.             public void stateChanged(ChangeEvent e){
  110.                 rozmiar_czcionki=(Integer)rozpietosc.getValue();
  111.                 textArea2.setFont(textArea2.getFont().deriveFont((float)rozmiar_czcionki));
  112.             }
  113.         });
  114.        
  115.         String style[]= {"Plain", "Bold", "Italic"};
  116.        
  117.         styl=new JList(style); //data has type Object[]
  118.         styl.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
  119.         styl.setLayoutOrientation(JList.HORIZONTAL_WRAP);
  120.         styl.setVisibleRowCount(-1);
  121.         styl.setFont(styl.getFont().deriveFont(20f));
  122.        
  123.         lista_styli=styl.getSelectionModel();
  124.         lista_styli.addListSelectionListener(new zatwierdzanie_stylu());
  125.        
  126.         mainFrame2.add(styl);
  127.  
  128.         mainFrame2.addWindowListener(new WindowAdapter(){
  129.             @Override
  130.             public void windowClosing(WindowEvent windowEvent){
  131.                 textArea.setFont(new Font(fonts[czcionka], rozmiar_czcionki, styl_czcionki));
  132.                 textArea.setText(textArea2.getText());
  133.             }        
  134.         });  
  135.     }
  136.    
  137.     private void showMenuDemo(){
  138.         //create a menu bar
  139.         final JMenuBar menuBar=new JMenuBar();
  140.  
  141.         //create menus
  142.         JMenu fileMenu=new JMenu("File");
  143.         JMenu editMenu=new JMenu("Edit");
  144.      
  145.         //create menu items
  146.         JMenuItem openMenuItem=new JMenuItem("Open");
  147.         openMenuItem.setActionCommand("Open");
  148.  
  149.         JMenuItem saveMenuItem=new JMenuItem("Save");
  150.         saveMenuItem.setActionCommand("Save");
  151.  
  152.         JMenuItem cutMenuItem=new JMenuItem("Options");
  153.         cutMenuItem.setActionCommand("Options");
  154.  
  155.         MenuItemListener menuItemListener=new MenuItemListener();
  156.  
  157.         openMenuItem.addActionListener(menuItemListener);
  158.         saveMenuItem.addActionListener(menuItemListener);
  159.         cutMenuItem.addActionListener(menuItemListener);
  160.  
  161.         //add menu items to menus
  162.         fileMenu.add(openMenuItem);
  163.         fileMenu.add(saveMenuItem);    
  164.      
  165.         editMenu.add(cutMenuItem);
  166.  
  167.         //add menu to menubar
  168.         menuBar.add(fileMenu);
  169.         menuBar.add(editMenu);
  170.  
  171.         //add menubar to the frame
  172.         mainFrame.setJMenuBar(menuBar);
  173.         mainFrame.setVisible(true);    
  174.     }
  175.     class MenuItemListener implements ActionListener{
  176.         @Override
  177.         public void actionPerformed(ActionEvent e) {            
  178.             //System.out.println(e.getActionCommand());
  179.          
  180.             if(e.getActionCommand()=="Open"){
  181.                 JFileChooser fc=new JFileChooser();
  182.                 int returnVal=fc.showOpenDialog(fc);
  183.  
  184.                 if (returnVal == JFileChooser.APPROVE_OPTION){
  185.                     File file = fc.getSelectedFile();
  186.                     textArea.setText("");
  187.                     odczyt(file.getPath());
  188.                 }
  189.             }
  190.          
  191.             if(e.getActionCommand()=="Save"){
  192.                 JFileChooser fc=new JFileChooser();
  193.                 int returnVal=fc.showSaveDialog(fc);
  194.  
  195.                 if(returnVal==JFileChooser.APPROVE_OPTION){
  196.                     File file=fc.getSelectedFile();
  197.                     zapis(file.getPath());
  198.                 }
  199.             }
  200.          
  201.             if(e.getActionCommand()=="Options"){
  202.                 EventQueue.invokeLater(new Runnable() {
  203.                     @Override
  204.                     public void run(){
  205.                        utworzGUI2();
  206.                     }
  207.                 });
  208.             }
  209.         }
  210.     }
  211.    
  212.     class zatwierdzenie_czcionki implements ListSelectionListener{
  213.         public void valueChanged(ListSelectionEvent e){
  214.             ListSelectionModel wybrana_czcionka=(ListSelectionModel)e.getSource();
  215.  
  216.             if(!wybrana_czcionka.isSelectionEmpty()){
  217.                 int index=wybrana_czcionka.getAnchorSelectionIndex();
  218.  
  219.                 if(wybrana_czcionka.isSelectedIndex(index)){
  220.                     czcionka=index;
  221.                     textArea2.setFont(new Font(fonts[index], textArea2.getFont().getStyle(), textArea2.getFont().getSize()));
  222.                 }
  223.             }
  224.         }
  225.     }
  226.     class zatwierdzanie_stylu implements ListSelectionListener{
  227.         public void valueChanged(ListSelectionEvent e){
  228.             ListSelectionModel wybrany_styl=(ListSelectionModel)e.getSource();
  229.  
  230.             if(!wybrany_styl.isSelectionEmpty()){
  231.                 // Find out which indexes are selected.
  232.                 int minIndex=wybrany_styl.getMinSelectionIndex();
  233.                 int maxIndex=wybrany_styl.getMaxSelectionIndex();
  234.                 for(int i=minIndex; i<=maxIndex; i++){
  235.                     if(wybrany_styl.isSelectedIndex(i)){
  236.                         styl_czcionki=i;
  237.                         if(styl_czcionki==0){
  238.                             textArea2.setFont(textArea2.getFont().deriveFont(Font.PLAIN));
  239.                         }
  240.                         else if(styl_czcionki==1){
  241.                             textArea2.setFont(textArea2.getFont().deriveFont(Font.BOLD));
  242.                         }
  243.                         else{
  244.                             textArea2.setFont(textArea2.getFont().deriveFont(Font.ITALIC));
  245.                         }
  246.                     }
  247.                 }
  248.             }
  249.         }
  250.     }
  251.     public void odczyt(String in){
  252.         try{
  253.             FileReader fr=new FileReader(in);
  254.             LineNumberReader lr=new LineNumberReader(fr);
  255.             String line;
  256.             while((line=lr.readLine())!=null){
  257.                 textArea.append(line);
  258.             }
  259.             lr.close();
  260.         }catch(IOException ex){
  261.             System.out.println(ex);
  262.         }
  263.     }
  264.      
  265.     public void zapis(String out){
  266.         try{
  267.             BufferedWriter bw=new BufferedWriter(new FileWriter(out));
  268.            
  269.             for(String line : textArea.getText().split("\\n")){
  270.                 bw.write(line);
  271.             }
  272.             bw.close();
  273.         }catch(IOException ex){
  274.             System.out.println(ex);
  275.         }
  276.     }
  277. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement