Sabtu, 27 Mei 2017

Notepad (Pengaturan Font)

Pada Minggu ke-5 kami melanjutkan untuk kodingan Notepad.java dimana dibagian view kami menambah kan fungsi font untuk mengatur font size tulisan di Notepad.java 

Notepad.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.SocketTimeoutException;

/** * Created by putriramadannia_pc on 4/5/2017. */public class Notepad extends JFrame {

    private JTextArea textArea;

    public Notepad() {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException e) {     //menentukan tampilan dari window//tampilan dari sistem  nya            e.printStackTrace();
        }
         catch(InstantiationException e){
            e.printStackTrace();
        } catch(IllegalAccessException e){
            e.printStackTrace();
        } catch(UnsupportedLookAndFeelException e){
            e.printStackTrace();
        }

        JPanel panel = (JPanel) this.getContentPane(); //cara ngambil content jframe       // GridLayout gridLayout = new GridLayout(0, 2);//layout manager       // panel.setLayout(gridLayout);
  //      JTextField field = new JTextField(); //dia buat text field dan area field=satu baris,area banyak baris         textArea = new JTextArea(); //layup untuk mengatur   //     panel.add(field);        panel.add(textArea);

        this.setTitle("Notepad");

        JMenuBar menuBar = new JMenuBar();
        JMenu file = new JMenu("File"),
                view = new JMenu("View"),
                    edit = new JMenu("Edit"),
                        search = new JMenu("Search");
        JMenuItem open = new JMenuItem("Open.."),
                save = new JMenuItem("Save"),
                saveAs = new JMenuItem("Save As");
        JMenu openc = new JMenu("Open Containing File");
                    JMenuItem explorer = new JMenuItem("Explorer");
                    JMenuItem cmd = new JMenuItem("Cmd");

        JMenu font = new JMenu("Font");
        JMenuItem size14 = new JMenuItem("14");
        JMenuItem size16 = new JMenuItem("16");
        JMenuItem size18 = new JMenuItem("18");
        JMenuItem custom = new JMenuItem("Custom");

        ActionListener sizeListener = new ActionListener(){
            @Override            public void actionPerformed(ActionEvent actionEvent){
                Integer size;
                if(actionEvent.getActionCommand().equals("-")) {
                    size = (Integer) JOptionPane.showInputDialog(
                            Notepad.this,
                            "Ukuran Font : ",
                            "Custom Size ",
                            JOptionPane.INFORMATION_MESSAGE,
                            null,
                            new Integer[]{10, 12, 14, 16, 18, 20, 24, 36, 48},
                            "Ukuran");
                    if (size == null)
                        return;
                }  else                    size = Integer.valueOf(actionEvent.getActionCommand());

                Notepad.this.changeTextSize(size);

                }
            };

            size14.setActionCommand("14");
            size16.setActionCommand("16");
            size18.setActionCommand("18");
            custom.setActionCommand("-");

            size14.addActionListener(sizeListener);
            size16.addActionListener(sizeListener);
            size18.addActionListener(sizeListener);
            custom.addActionListener(sizeListener);


        file.add(open);
        file.add(openc);
        openc.add(explorer);
        openc.add(cmd);
        file.add(save);
        file.add(saveAs);

        //Menu untuk Test Alert Box        JMenuItem test = new JMenuItem("Test");
        test.addActionListener(new ActionListener() {
            @Override            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(Notepad.this, "DO YOU WANT TO SAVE IT?" ,
                        "SAVE",
                        JOptionPane.QUESTION_MESSAGE);


                String jawaban = JOptionPane.showInputDialog(Notepad.this,
                        "Apa Ajawaban Anda?",
                        "SIMPAN!",
                        JOptionPane.QUESTION_MESSAGE
                );
                System.out.println(jawaban);
            }
        });
        view.add(test);
        view.add(font);

        font.add(size14);
        font.add(size16);
        font.add(size18);
        font.add(custom);

        menuBar.add(file);
        menuBar.add(view);
        menuBar.add(edit);
        menuBar.add(search);

        this.setJMenuBar(menuBar);


        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);


        //mENGESET uKURAN mINIIMUM JFrame        this.pack(); //komponen nya jadi 1        this.setMinimumSize(this.getPreferredSize()); //mengupdate ukuran yang pas untuk window itu        this.setVisible(true);
    }

    private void changeTextSize(Integer size) {
        System.out.println(size);
        Font originalFont = textArea.getFont();
        Font newFont = new Font(originalFont.getFontName(),
                originalFont.getStyle(),
                size);
        //Set Font ke Text Area        textArea.setFont(newFont); //Menmpilkan Font yang baru ke dalam text area    }

    public static void main(String[] args) {
        Notepad notepad = new Notepad();
    }
}


//Jchooser untuk pemilih file//jangan lupa di tutup




Contoh Output nya :

Pertama Tulis sebuah kalimat di Notepad


Lalu klik View -> Font -> dan pilih size 14 seperti gambar dibawah ini


Maka tulisan akan menyesuaikan font nya


Thank You...

Tidak ada komentar:

Posting Komentar

Thread dan Socket

Thread Thread adalah rangkaian eksekusi dari sebuah aplikasi java dan setiap program java minimal memiliki satu buah thread. Sebuah thre...