课程总结

一、学期总结

第一次:(https://www.cnblogs.com/zzwwll/p/11479607.html)

第二次:(https://www.cnblogs.com/zzwwll/p/11516839.html)

第三次:(https://www.cnblogs.com/zzwwll/p/11544230.html)

第四次:(https://www.cnblogs.com/zzwwll/p/11593492.html)

第五次:(https://www.cnblogs.com/zzwwll/p/11630124.html)

第六次:(https://www.cnblogs.com/zzwwll/p/11653993.html)

第七次:(https://www.cnblogs.com/zzwwll/p/11700097.html)

第八次:(https://www.cnblogs.com/zzwwll/p/11737751.html)

第九次:(https://www.cnblogs.com/zzwwll/p/11786071.html)

第十次:(https://www.cnblogs.com/zzwwll/p/11820481.html)

第十一次:(https://www.cnblogs.com/zzwwll/p/11872357.html)

第十二次:(https://www.cnblogs.com/zzwwll/p/11917827.html)

第十三次:(https://www.cnblogs.com/zzwwll/p/11959411.html)

二、学习总结:

Java是一门编程语言。首先,学习java的基础。Java的基础与其他编程语言一样有他们自身的编程规则,熟练的掌握其编程规则是学习好一门语言的最重要的基础。其次,学习Java思想。编程思想,我个人认为一种指引使用编程语言的逻辑达到自己想要的目的的一种思想指导。但是,以上的这两个境界都是一段时间内所不能达到的。所以,学习Java我还在路上。

三、个人总结:

经过了将近半年的Java学习,我觉得Java的路很长我现在还没有上路,之前的每周总结可以作为以后用来学习的资料和学习Java的见证。整理好心态仔细更加深入地学习Java。在我看来,Java比C语言要稍微简单点,比较容易看到效果,来激发进一步学习的兴趣。

这学期Java学了Java基础程序设计的内容和C语言有点相似,Java面向对象程序设计有各种的Java关键字的用处及其方法,Java应用程序设计是将Java知识运用于实际程序中可以看到相应的效果。

我的Java课程设计总结部分代码

package lastwork;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.Transferable;

import javax.swing.event.UndoableEditListener;
import javax.swing.text.View;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.UndoableEditEvent;
import javax.swing.event.UndoableEditListener;
import javax.swing.undo.CannotUndoException;
import javax.swing.undo.UndoManager;

import org.w3c.dom.Text;


import jdk.jshell.execution.Util;


public class TextPad extends dialog implements ActionListener, DocumentListener{

    JFrame frame;
    JMenu fileMenu,editManu,formatMenu,checkMenu,helpMenu;
    JMenuBar bar;
    ImageIcon openicon,newicon,saveicon,saveanothericon,closeicon,linewrapicon;
    JMenuItem openitem,newitem,saveitem,saveanotheritem,closeitem,pageitem,pointitem;
    JMenuItem repealitem,cutitem,copyitem,stickitem,deleteitem,allitem,timedateitem,finditem,findnextitem,replaceitem,turnitem;
    JMenuItem prepealitem,pcutitem,pcopyitem,pstickitem,pdeleteitem,pallitem,ptimedateitem;
    JMenuItem linewrapitem,fontitem;
    JMenuItem checkhelpitem,aboutitem;
    JMenuItem stateitem;
    JTextArea area;
    JScrollPane scpane;
    JFileChooser chooser;
    File file;
    JButton bt;
    JPopupMenu pMenu;
    boolean i=false;
    boolean isNewFile=true;
    File currentFile;
    String oldValue;
    JLabel statusLabel;
    //系统剪贴板
    Toolkit toolkit=Toolkit.getDefaultToolkit();
    Clipboard clipBoard=toolkit.getSystemClipboard();
    //创建撤销操作管理器(与撤销操作有关)
    protected UndoManager undo=new UndoManager();
    protected UndoableEditListener undoHandler=new UndoHandler();
     
    public TextPad(){
        frame=new JFrame("记事本");
        bar=new JMenuBar();
        fileMenu=new JMenu("文件(F)");
        editManu=new JMenu("编辑(E)");
        formatMenu=new JMenu("格式(O)");
        checkMenu=new JMenu("查看(V)");
        helpMenu=new JMenu("帮助(H)");
        statusLabel=new JLabel("              状态栏");
        frame.add(statusLabel,BorderLayout.SOUTH);
        area=new JTextArea();
        scpane=new JScrollPane(area);
        pMenu=new JPopupMenu();
        
        //图片导入路径
        newicon=new ImageIcon("d:"+File.separator+"111"+File.separator+"new.png");
        openicon=new ImageIcon("d:"+File.separator+"111"+File.separator+"open.png");
        saveicon=new ImageIcon("d:"+File.separator+"111"+File.separator+"save.png");
        saveanothericon=new ImageIcon("d:"+File.separator+"111"+File.separator+"saveanother.png");
        closeicon=new ImageIcon("d:"+File.separator+"111"+File.separator+"close.png");
        linewrapicon=new ImageIcon("d:"+File.separator+"111"+File.separator+"d.png");
        
        //调用图片
        newitem=new JMenuItem("新建(N)",newicon);
        openitem=new JMenuItem("打开(O)",openicon);
        saveitem=new JMenuItem("保存(S)",saveicon);
        saveanotheritem=new JMenuItem("另存为(A)",saveanothericon);
        closeitem=new JMenuItem("关闭(X)",closeicon);
        pageitem=new JMenuItem("页面设置(U)");
        pointitem=new JMenuItem("打印(P)");
        
        repealitem=new JMenuItem("撤销(U)");
        cutitem=new JMenuItem("剪切(T)");
        copyitem=new JMenuItem("复制(C)");
        stickitem=new JMenuItem("粘贴(V)");
        deleteitem=new JMenuItem("删除(L)");
        finditem=new JMenuItem("查找(F)");
        findnextitem=new JMenuItem("查找下一个(FN)");
        replaceitem=new JMenuItem("替换(H)");
        turnitem=new JMenuItem("转到(G)");
        allitem=new JMenuItem("全选(A)");
        timedateitem=new JMenuItem("时间/日期(D)");
        
        linewrapitem=new JMenuItem("自动换行(W)",linewrapicon);
        fontitem=new JMenuItem("字体(F)");
        
        stateitem=new JMenuItem("状态栏(S)");
        
        checkhelpitem=new JMenuItem("查看帮助(H)");
        aboutitem=new JMenuItem("关于(A)");
        
        //添加为菜单项
        fileMenu.add(newitem);
        fileMenu.add(openitem);
        fileMenu.add(saveitem);
        fileMenu.add(saveanotheritem);
        fileMenu.addSeparator();
        fileMenu.add(pageitem);
        fileMenu.add(pointitem);
        fileMenu.addSeparator();
        fileMenu.add(closeitem);
        
        editManu.add(repealitem);
        editManu.addSeparator();
        editManu.add(cutitem);
        editManu.add(copyitem);
        editManu.add(stickitem);
        editManu.add(deleteitem);
        editManu.addSeparator();
        editManu.add(finditem);
        editManu.add(findnextitem);
        editManu.add(replaceitem);
        editManu.add(turnitem);
        editManu.addSeparator();
        editManu.add(allitem);
        editManu.add(timedateitem);
        
        repealitem.setEnabled(false);
        cutitem.setEnabled(false);
        copyitem.setEnabled(false);
        deleteitem.setEnabled(false);
        
        
        formatMenu.add(linewrapitem);
        formatMenu.add(fontitem);
        
        checkMenu.add(stateitem);
        
        helpMenu.add(checkhelpitem);
        helpMenu.add(aboutitem);
        
        prepealitem=new JMenuItem("撤销(U)");
        pcutitem=new JMenuItem("剪切(T)");
        pcopyitem=new JMenuItem("复制(C)");
        pstickitem=new JMenuItem("粘帖(P)");
        pdeleteitem=new JMenuItem("删除(D)");
        pallitem=new JMenuItem("全选(A)");
        ptimedateitem=new JMenuItem("时间/日期(D)");
         
        prepealitem.setEnabled(false);
        
        pMenu.add(prepealitem);
        pMenu.addSeparator();
        pMenu.add(pcutitem);
        pMenu.add(pcopyitem);
        pMenu.add(pstickitem);
        pMenu.add(pdeleteitem);
        pMenu.add(pallitem);
        pMenu.add(ptimedateitem);
        
        //设置快捷键和提示信息
        newitem.setMnemonic(KeyEvent.VK_N);
        newitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK));
        openitem.setMnemonic(KeyEvent.VK_O);
        openitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_DOWN_MASK));
        saveitem.setMnemonic(KeyEvent.VK_S);
        saveitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_DOWN_MASK));
        saveanotheritem.setMnemonic(KeyEvent.VK_A);
        saveanotheritem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_DOWN_MASK));
        closeitem.setMnemonic(KeyEvent.VK_X);
        closeitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_DOWN_MASK));
        pageitem.setMnemonic(KeyEvent.VK_U);
        pointitem.setMnemonic(KeyEvent.VK_P);
        pointitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_DOWN_MASK));
        
        repealitem.setMnemonic(KeyEvent.VK_Z);
        repealitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_DOWN_MASK));
        cutitem.setMnemonic(KeyEvent.VK_T);
        cutitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_DOWN_MASK));
        copyitem.setMnemonic(KeyEvent.VK_C);
        copyitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_DOWN_MASK));
        stickitem.setMnemonic(KeyEvent.VK_V);
        stickitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_DOWN_MASK));
        deleteitem.setMnemonic(KeyEvent.VK_L);
        deleteitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_DOWN_MASK));
        allitem.setMnemonic(KeyEvent.VK_A);
        allitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_DOWN_MASK));
        timedateitem.setMnemonic(KeyEvent.VK_D);
        timedateitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_DOWN_MASK));
        finditem.setMnemonic(KeyEvent.VK_F);
        finditem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_DOWN_MASK));
        findnextitem.setMnemonic(KeyEvent.VK_L);
        findnextitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_DOWN_MASK));
        replaceitem.setMnemonic(KeyEvent.VK_H);
        replaceitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_DOWN_MASK));
        turnitem.setMnemonic(KeyEvent.VK_G);
        turnitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_DOWN_MASK));
        
        prepealitem.setMnemonic(KeyEvent.VK_Z);
        prepealitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_DOWN_MASK));
        pcutitem.setMnemonic(KeyEvent.VK_T);
        pcutitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_DOWN_MASK));
        pcopyitem.setMnemonic(KeyEvent.VK_C);
        pcopyitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_DOWN_MASK));
        pstickitem.setMnemonic(KeyEvent.VK_V);
        pstickitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_DOWN_MASK));
        pdeleteitem.setMnemonic(KeyEvent.VK_L);
        pdeleteitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_DOWN_MASK));
        pallitem.setMnemonic(KeyEvent.VK_A);
        pallitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_DOWN_MASK));
        ptimedateitem.setMnemonic(KeyEvent.VK_D);
        ptimedateitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_DOWN_MASK));
        
        linewrapitem.setMnemonic(KeyEvent.VK_W);
        fontitem.setMnemonic(KeyEvent.VK_F);
        stateitem.setMnemonic(KeyEvent.VK_S);
        
        checkhelpitem.setMnemonic(KeyEvent.VK_H);
        aboutitem.setMnemonic(KeyEvent.VK_A);
        
        //添加事件监听器
        newitem.addActionListener(this);
        openitem.addActionListener(this);
        saveitem.addActionListener(this);
        saveanotheritem.addActionListener(this);
        closeitem.addActionListener(this);
        pageitem.addActionListener(this);
        pointitem.addActionListener(this);
        
        repealitem.addActionListener(this);
        cutitem.addActionListener(this);
        copyitem.addActionListener(this);
        stickitem.addActionListener(this);
        deleteitem.addActionListener(this);
        allitem.addActionListener(this);
        timedateitem.addActionListener(this);
        finditem.addActionListener(this);
        findnextitem.addActionListener(this);
        replaceitem.addActionListener(this);
        turnitem.addActionListener(this);
        
        linewrapitem.addActionListener(this);
        fontitem.addActionListener(this);
        
        stateitem.addActionListener(this);
        
        checkhelpitem.addActionListener(this);
        aboutitem.addActionListener(this);
        
        area.addMouseListener(new MouseAdapter()
         { public void mousePressed(MouseEvent e){ 
             if(e.isPopupTrigger())//返回此鼠标事件是否为该平台的弹出菜单触发事件
                 { pMenu.show(e.getComponent(),e.getX(),e.getY());//在组件调用者的坐标空间中的位置 X、Y 显示弹出菜单
                 }
             checkMenuItemEnabled();//设置剪切,复制,粘帖,删除等功能的可用性
             area.requestFocus();//编辑区获取焦点
            }
         public void mouseReleased(MouseEvent e)
         { if(e.isPopupTrigger())//返回此鼠标事件是否为该平台的弹出菜单触发事件
         { pMenu.show(e.getComponent(),e.getX(),e.getY());//在组件调用者的坐标空间中的位置 X、Y 显示弹出菜单
         }
         checkMenuItemEnabled();//设置剪切,复制,粘帖,删除等功能的可用性
         area.requestFocus();//编辑区获取焦点
         }
         });
        
        prepealitem.addActionListener(this);
        pcutitem.addActionListener(this);
        pcopyitem.addActionListener(this);
        pstickitem.addActionListener(this);
        pdeleteitem.addActionListener(this);
        pallitem.addActionListener(this);
        ptimedateitem.addActionListener(this);
        
        
        //编辑区注册事件监听(与撤销操作有关)
        area.getDocument().addUndoableEditListener(undoHandler);
        area.getDocument().addDocumentListener(this);
        
        //添加主菜单项
        bar.add(fileMenu);
        bar.add(editManu);
        bar.add(formatMenu);
        bar.add(checkMenu);
        bar.add(helpMenu);
        
        //添加面板及显示
        frame.add(scpane);
        frame.setJMenuBar(bar);
        frame.setSize(800, 550);
        frame.setLocation(400, 200);
        
        frame.setVisible(true);
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent arg0) {
                System.exit(1);
            }
        });
        
        
    }

    
    @Override
    public void actionPerformed(ActionEvent e) {
        Object obj=e.getSource();
        if(obj instanceof JMenuItem) {
            JMenuItem item=(JMenuItem)obj;
            if(item==newitem) {
                new TextPad();
        
            }else if(item==openitem) {
                chooser=new JFileChooser();
                chooser.showOpenDialog(null);
                file=chooser.getSelectedFile();
                try {
                    FileInputStream fis=new FileInputStream(file);
                    byte[] b;
                    try {
                        b = new byte[fis.available()];
                        fis.read(b);
                        area.append(new String(b));
                        fis.close();
                    } catch (IOException e1) {
                        
                        e1.printStackTrace();
                    }
                    
                } catch (FileNotFoundException e1) {
                    
                    e1.printStackTrace();
                }
            }else if(item==saveanotheritem) {
                chooser=new JFileChooser();
                chooser.showSaveDialog(null);
                file=chooser.getSelectedFile();
                try {
                    if(!file.exists()) {
                        file.createNewFile();
                    }
                    FileOutputStream fos=new FileOutputStream(file);
                    byte[] b=area.getText().getBytes();
                    fos.write(b);
                    fos.close();
                } catch (IOException e1) {
                
                    e1.printStackTrace();
                }
            }else if(item==saveitem) {
                file=chooser.getSelectedFile();
                try {
                    FileOutputStream fos=new FileOutputStream(file);
                    byte[] b=area.getText().getBytes();
                    fos.write(b);
                    
                    fos.close();
                } catch (FileNotFoundException e1) {
                    
                    e1.printStackTrace();
                } catch (IOException e1) {
                    
                    e1.printStackTrace();
                }
            
            }else if(item==closeitem) {
                 //System.exit(1);
                 int exitChoose=JOptionPane.showConfirmDialog(this,"确定要退出吗?","退出提示",JOptionPane.OK_CANCEL_OPTION);
                 if(exitChoose==JOptionPane.OK_OPTION){ 
                     System.exit(0);
                 }else{ 
                     return;
                 }
            }else if(item==cutitem||item==pcutitem) {
                area.cut();

            }else if(item==copyitem||item==pcopyitem) {
                area.copy();

            }else if(item==stickitem||item==pstickitem) {
                area.paste();

            }else if(item==allitem||item==pallitem) {
                area.selectAll();

            }else if(item==deleteitem||item==pdeleteitem) {
     
                String temp = area.getSelectedText();//获得鼠标拖动选取的文本 
                int start = area.getSelectionStart(); 
                int end = area.getSelectionEnd(); 
                area.replaceRange("",start,end);//选中的区域用""替换 
                        
            }else if(item==repealitem||item==prepealitem) {
                if(e.getSource()==repealitem || e.getSource()==prepealitem){
                    area.requestFocus();
                    if(undo.canUndo()){
                        try{ 
                                undo.undo();
                        }catch (CannotUndoException ex){ 
                                System.out.println("Unable to undo:" + ex);
                                //ex.printStackTrace();
                        }
                    }
             if(!undo.canUndo()){ 
                 repealitem.setEnabled(false);
                 prepealitem.setEnabled(false);
             }
             }
                
            }else if(item==timedateitem||item==ptimedateitem) {
                 Date d = new Date();
                 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 String dateNewStr=sdf.format(d);
                 area.append(dateNewStr);
                 
            }else if(item==pageitem) {
                area.requestFocus();
                JOptionPane.showMessageDialog(this,"对不起,此功能尚未实现!","提示",JOptionPane.WARNING_MESSAGE);
                
            }else if(item==pointitem) {
                area.requestFocus();
                JOptionPane.showMessageDialog(this,"对不起,此功能尚未实现!","提示",JOptionPane.WARNING_MESSAGE);
                
            }else if(item==finditem) {
                
                
            }else if(item==findnextitem) {
                
                
            }else if(item==replaceitem) {
                
                
            }else if(item==turnitem) {
                
                
            }
            
            else if(item==linewrapitem) {
                
                
                if(!i) {
                    area.setLineWrap(true);    
//                  area.setWrapStyleWord(true);

                    
                    i=true;
                }else {
                    area.setLineWrap(false);    
//                  area.setWrapStyleWord(false); 
                    
                    i=false;
                }
                
                
            }else if(item==fontitem) {
                area.requestFocus();
                font();
            }else if(item==stateitem) {
                if(!i) {
                    statusLabel.setVisible(false);   
                    i=true;
                }else {
                    statusLabel.setVisible(true);
                    i=false;
                }
                
                
            }else if(item==checkhelpitem) {
                 area.requestFocus();
                 JOptionPane.showMessageDialog(this,"请自行百度","帮助主题",JOptionPane.INFORMATION_MESSAGE);

            }else if(item==aboutitem) {
                    area.requestFocus();
                    JOptionPane.showMessageDialog(this,
                 "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n"+
                 " 编写者:张文龙    \n"+
                 " 编写时间:2019年11月 \n"+
                 " qq:908866340 \n"+
                 " 一些地方借鉴他人  \n"+
                 "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n",
                 "记事本",JOptionPane.INFORMATION_MESSAGE);
            }
        }

    }

    private void checkMenuItemEnabled() {
        String selectText=area.getSelectedText();
         if(selectText==null){ 
             cutitem.setEnabled(false);
             pcutitem.setEnabled(false);
             copyitem.setEnabled(false);
             pcopyitem.setEnabled(false);
             deleteitem.setEnabled(false);
             pdeleteitem.setEnabled(false);
             
             }else{
                cutitem.setEnabled(true);
                pcutitem.setEnabled(true); 
                copyitem.setEnabled(true);
                pcopyitem.setEnabled(true);
                deleteitem.setEnabled(true);
                pdeleteitem.setEnabled(true);
         }
         //粘帖功能可用性判断
         Transferable contents=clipBoard.getContents(this);
         if(contents==null){ 
             stickitem.setEnabled(false);
             pstickitem.setEnabled(false);
         }else{ 
             stickitem.setEnabled(true);
             pstickitem.setEnabled(true); 
         }
         
        
    }
    class UndoHandler implements UndoableEditListener{ 
         public void undoableEditHappened(UndoableEditEvent uee){ 
             undo.addEdit(uee.getEdit());
     }
     }

    public void font(){ 

         final JDialog fontDialog=new JDialog(this,"字体设置",false);
         Container con=fontDialog.getContentPane();
         con.setLayout(new FlowLayout(FlowLayout.LEFT));

         JLabel fontLabel=new JLabel("字体(F):");
         fontLabel.setPreferredSize(new Dimension(100,20));//构造一个Dimension,并将其初始化为指定宽度和高度

         JLabel styleLabel=new JLabel("字形(Y):");
         styleLabel.setPreferredSize(new Dimension(100,20));

         JLabel sizeLabel=new JLabel("大小(S):");
         sizeLabel.setPreferredSize(new Dimension(100,20));

         final JLabel sample=new JLabel("张文龙的记事本");

         final JTextField fontText=new JTextField(9);
         fontText.setPreferredSize(new Dimension(200,20));

         final JTextField styleText=new JTextField(8);
         styleText.setPreferredSize(new Dimension(200,20));

         final int style[]={Font.PLAIN,Font.BOLD,Font.ITALIC,Font.BOLD+Font.ITALIC};
         final JTextField sizeText=new JTextField(5);
         sizeText.setPreferredSize(new Dimension(200,20));

         JButton okButton=new JButton("确定");
         JButton cancel=new JButton("取消");

         cancel.addActionListener(new ActionListener(){ 
             public void actionPerformed(ActionEvent e){ 
                 fontDialog.dispose(); 
            }
         });

         Font currentFont=area.getFont();
         fontText.setText(currentFont.getFontName());
         fontText.selectAll();
         
         if(currentFont.getStyle()==Font.PLAIN){
             styleText.setText("常规");
         }
         else if(currentFont.getStyle()==Font.BOLD){
             styleText.setText("粗体");
         }
         else if(currentFont.getStyle()==Font.ITALIC){
             styleText.setText("斜体");
         }
         else if(currentFont.getStyle()==(Font.BOLD+Font.ITALIC)){
             styleText.setText("粗斜体");
         }
         
         styleText.selectAll();

         String str=String.valueOf(currentFont.getSize());
         sizeText.setText(str);
         sizeText.selectAll();

         final JList fontList,styleList,sizeList;
         GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
         final String fontName[]=ge.getAvailableFontFamilyNames();

         fontList=new JList(fontName);
         fontList.setFixedCellWidth(86);
         fontList.setFixedCellHeight(20);
         fontList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

         final String fontStyle[]={"常规","粗体","斜体","粗斜体"};

         styleList=new JList(fontStyle);
         styleList.setFixedCellWidth(86);
         styleList.setFixedCellHeight(20);
         styleList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         if(currentFont.getStyle()==Font.PLAIN){
             styleList.setSelectedIndex(0);
         }
         
         else if(currentFont.getStyle()==Font.BOLD){
             styleList.setSelectedIndex(1);
         }
         
         else if(currentFont.getStyle()==Font.ITALIC){
             styleList.setSelectedIndex(2);
         }
         
         else if(currentFont.getStyle()==(Font.BOLD+Font.ITALIC)){
             styleList.setSelectedIndex(3);
         }
         
         final String fontSize[]={"8","9","10","11","12","14","16","18","20","22","24","26","28","36","48","72"};
         sizeList=new JList(fontSize);
         sizeList.setFixedCellWidth(43);
         sizeList.setFixedCellHeight(20);
         sizeList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

         fontList.addListSelectionListener(new ListSelectionListener(){
            public void valueChanged(ListSelectionEvent event){
                fontText.setText(fontName[fontList.getSelectedIndex()]);
                fontText.selectAll();
                Font sampleFont1=new Font(fontText.getText(),style[styleList.getSelectedIndex()],Integer.parseInt(sizeText.getText()));
                sample.setFont(sampleFont1);
            }
         });
         styleList.addListSelectionListener(new ListSelectionListener(){
            public void valueChanged(ListSelectionEvent event){
                int s=style[styleList.getSelectedIndex()];
                styleText.setText(fontStyle[s]);
                styleText.selectAll();
                Font sampleFont2=new Font(fontText.getText(),style[styleList.getSelectedIndex()],Integer.parseInt(sizeText.getText()));
                sample.setFont(sampleFont2);
         }
         });
         sizeList.addListSelectionListener(new ListSelectionListener(){ 
             public void valueChanged(ListSelectionEvent event){ 
                sizeText.setText(fontSize[sizeList.getSelectedIndex()]);
                //sizeText.requestFocus();
                sizeText.selectAll(); 
                Font sampleFont3=new Font(fontText.getText(),style[styleList.getSelectedIndex()],Integer.parseInt(sizeText.getText()));
                sample.setFont(sampleFont3);
            }
         });
         okButton.addActionListener(new ActionListener(){ 
            public void actionPerformed(ActionEvent e){ 
            Font okFont=new Font(fontText.getText(),style[styleList.getSelectedIndex()],Integer.parseInt(sizeText.getText()));
            area.setFont(okFont);
            fontDialog.dispose();
            }
         });

         JPanel samplePanel=new JPanel();
         samplePanel.setBorder(BorderFactory.createTitledBorder("示例"));
         
         samplePanel.add(sample);
         JPanel panel1=new JPanel();
         JPanel panel2=new JPanel();
         JPanel panel3=new JPanel();
         panel2.add(fontText);
         panel2.add(styleText);
         panel2.add(sizeText);
         panel2.add(okButton);
         panel3.add(new JScrollPane(fontList));//JList不支持直接滚动,所以要让JList作为JScrollPane的视口视图
         panel3.add(new JScrollPane(styleList));
         panel3.add(new JScrollPane(sizeList));
         panel3.add(cancel);
         con.add(panel1);
         con.add(panel2);
         con.add(panel3);
         con.add(samplePanel);
         fontDialog.setSize(350,340);
         fontDialog.setLocation(200,200);
         fontDialog.setResizable(false);
         fontDialog.setVisible(true);
         }
    public void insertUpdate(DocumentEvent e) {
        repealitem.setEnabled(true);
        prepealitem.setEnabled(true);
    }
    
    public void removeUpdate(DocumentEvent e) {
        repealitem.setEnabled(true);
        prepealitem.setEnabled(true);
    }
    
    public void changedUpdate(DocumentEvent e) {
        repealitem.setEnabled(true);
        prepealitem.setEnabled(true);
    }
}

运行截图

posted @ 2019-12-13 12:37  zzwwll  阅读(151)  评论(1编辑  收藏  举报