Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package michal_gornik_ajecia_11;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.*;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.LineNumberReader;
- import javax.swing.event.ChangeEvent;
- import javax.swing.event.ChangeListener;
- import javax.swing.event.ListSelectionEvent;
- import javax.swing.event.ListSelectionListener;
- public class Michal_gornik_ajecia_11 {
- private JFrame mainFrame;
- private JFrame mainFrame2;
- private JTextArea textArea;
- private JTextArea textArea2;
- JList list;
- JList styl;
- String fonts[];
- ListSelectionModel lista_modeli;
- ListSelectionModel lista_styli;
- int czcionka=0;
- int rozmiar_czcionki=12;
- int styl_czcionki=0;
- public Michal_gornik_ajecia_11(){
- utworzGUI();
- }
- public static void main(String[] args){
- EventQueue.invokeLater(new Runnable(){
- @Override
- public void run(){
- Michal_gornik_ajecia_11 notatnik=new Michal_gornik_ajecia_11();
- notatnik.showMenuDemo();
- }
- });
- }
- private void utworzGUI(){
- mainFrame=new JFrame("Notatnik");
- mainFrame.setSize(1000,800);
- textArea=new JTextArea();
- textArea.setLineWrap(true);
- textArea.setWrapStyleWord(true);
- textArea.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8));
- JScrollPane scrollTextArea = new JScrollPane(textArea, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
- mainFrame.add(scrollTextArea);
- mainFrame.setVisible(true);
- mainFrame.addWindowListener(new WindowAdapter(){
- @Override
- public void windowClosing(WindowEvent windowEvent){
- System.exit(0);
- }
- });
- }
- private void utworzGUI2(){
- mainFrame2=new JFrame("Ustawienia");
- mainFrame2.setLayout(new GridLayout(0,4));
- mainFrame2.setSize(900,400);
- mainFrame2.setVisible(true);
- textArea2=new JTextArea();
- textArea2.setText(textArea.getText());
- textArea2.setLineWrap(true);
- textArea2.setWrapStyleWord(true);
- textArea2.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8));
- textArea2.setVisible(true);
- textArea2.setSize(200,200);
- JScrollPane scrollTextArea=new JScrollPane(textArea2, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
- mainFrame2.add(scrollTextArea);
- fonts=GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
- list=new JList(fonts); //data has type Object[]
- list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
- list.setLayoutOrientation(JList.VERTICAL);
- list.setVisibleRowCount(-1);
- lista_modeli=list.getSelectionModel();
- lista_modeli.addListSelectionListener(new zatwierdzenie_czcionki());
- JScrollPane listScroller=new JScrollPane(list);
- listScroller.setPreferredSize(new Dimension(200, 200));
- mainFrame2.add(listScroller);
- SpinnerModel rozmiar=new SpinnerNumberModel(12,1,100,1);
- JSpinner rozpietosc=new JSpinner(rozmiar);
- rozpietosc.setPreferredSize(new Dimension(200,40));
- rozpietosc.setFont(rozpietosc.getFont().deriveFont(20f));
- mainFrame2.add(rozpietosc);
- rozpietosc.addChangeListener(new ChangeListener(){
- @Override
- public void stateChanged(ChangeEvent e){
- rozmiar_czcionki=(Integer)rozpietosc.getValue();
- textArea2.setFont(textArea2.getFont().deriveFont((float)rozmiar_czcionki));
- }
- });
- String style[]= {"Plain", "Bold", "Italic"};
- styl=new JList(style); //data has type Object[]
- styl.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
- styl.setLayoutOrientation(JList.HORIZONTAL_WRAP);
- styl.setVisibleRowCount(-1);
- styl.setFont(styl.getFont().deriveFont(20f));
- lista_styli=styl.getSelectionModel();
- lista_styli.addListSelectionListener(new zatwierdzanie_stylu());
- mainFrame2.add(styl);
- mainFrame2.addWindowListener(new WindowAdapter(){
- @Override
- public void windowClosing(WindowEvent windowEvent){
- textArea.setFont(new Font(fonts[czcionka], rozmiar_czcionki, styl_czcionki));
- textArea.setText(textArea2.getText());
- }
- });
- }
- private void showMenuDemo(){
- //create a menu bar
- final JMenuBar menuBar=new JMenuBar();
- //create menus
- JMenu fileMenu=new JMenu("File");
- JMenu editMenu=new JMenu("Edit");
- //create menu items
- JMenuItem openMenuItem=new JMenuItem("Open");
- openMenuItem.setActionCommand("Open");
- JMenuItem saveMenuItem=new JMenuItem("Save");
- saveMenuItem.setActionCommand("Save");
- JMenuItem cutMenuItem=new JMenuItem("Options");
- cutMenuItem.setActionCommand("Options");
- MenuItemListener menuItemListener=new MenuItemListener();
- openMenuItem.addActionListener(menuItemListener);
- saveMenuItem.addActionListener(menuItemListener);
- cutMenuItem.addActionListener(menuItemListener);
- //add menu items to menus
- fileMenu.add(openMenuItem);
- fileMenu.add(saveMenuItem);
- editMenu.add(cutMenuItem);
- //add menu to menubar
- menuBar.add(fileMenu);
- menuBar.add(editMenu);
- //add menubar to the frame
- mainFrame.setJMenuBar(menuBar);
- mainFrame.setVisible(true);
- }
- class MenuItemListener implements ActionListener{
- @Override
- public void actionPerformed(ActionEvent e) {
- //System.out.println(e.getActionCommand());
- if(e.getActionCommand()=="Open"){
- JFileChooser fc=new JFileChooser();
- int returnVal=fc.showOpenDialog(fc);
- if (returnVal == JFileChooser.APPROVE_OPTION){
- File file = fc.getSelectedFile();
- textArea.setText("");
- odczyt(file.getPath());
- }
- }
- if(e.getActionCommand()=="Save"){
- JFileChooser fc=new JFileChooser();
- int returnVal=fc.showSaveDialog(fc);
- if(returnVal==JFileChooser.APPROVE_OPTION){
- File file=fc.getSelectedFile();
- zapis(file.getPath());
- }
- }
- if(e.getActionCommand()=="Options"){
- EventQueue.invokeLater(new Runnable() {
- @Override
- public void run(){
- utworzGUI2();
- }
- });
- }
- }
- }
- class zatwierdzenie_czcionki implements ListSelectionListener{
- public void valueChanged(ListSelectionEvent e){
- ListSelectionModel wybrana_czcionka=(ListSelectionModel)e.getSource();
- if(!wybrana_czcionka.isSelectionEmpty()){
- int index=wybrana_czcionka.getAnchorSelectionIndex();
- if(wybrana_czcionka.isSelectedIndex(index)){
- czcionka=index;
- textArea2.setFont(new Font(fonts[index], textArea2.getFont().getStyle(), textArea2.getFont().getSize()));
- }
- }
- }
- }
- class zatwierdzanie_stylu implements ListSelectionListener{
- public void valueChanged(ListSelectionEvent e){
- ListSelectionModel wybrany_styl=(ListSelectionModel)e.getSource();
- if(!wybrany_styl.isSelectionEmpty()){
- // Find out which indexes are selected.
- int minIndex=wybrany_styl.getMinSelectionIndex();
- int maxIndex=wybrany_styl.getMaxSelectionIndex();
- for(int i=minIndex; i<=maxIndex; i++){
- if(wybrany_styl.isSelectedIndex(i)){
- styl_czcionki=i;
- if(styl_czcionki==0){
- textArea2.setFont(textArea2.getFont().deriveFont(Font.PLAIN));
- }
- else if(styl_czcionki==1){
- textArea2.setFont(textArea2.getFont().deriveFont(Font.BOLD));
- }
- else{
- textArea2.setFont(textArea2.getFont().deriveFont(Font.ITALIC));
- }
- }
- }
- }
- }
- }
- public void odczyt(String in){
- try{
- FileReader fr=new FileReader(in);
- LineNumberReader lr=new LineNumberReader(fr);
- String line;
- while((line=lr.readLine())!=null){
- textArea.append(line);
- }
- lr.close();
- }catch(IOException ex){
- System.out.println(ex);
- }
- }
- public void zapis(String out){
- try{
- BufferedWriter bw=new BufferedWriter(new FileWriter(out));
- for(String line : textArea.getText().split("\\n")){
- bw.write(line);
- }
- bw.close();
- }catch(IOException ex){
- System.out.println(ex);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement