diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..26438fe82384544487f2191aef49d4b0ef346eb7 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/README.md=UTF-8 diff --git a/src/java2020spring/HFile.java b/src/java2020spring/HFile.java new file mode 100644 index 0000000000000000000000000000000000000000..7ac9a5b8af631307ea9db51983ae52f1ee4e3fe2 --- /dev/null +++ b/src/java2020spring/HFile.java @@ -0,0 +1,68 @@ +package java2020spring; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; + +import javax.swing.JFileChooser; +import javax.swing.JFrame; +import javax.swing.JTextArea; +import javax.swing.filechooser.FileNameExtensionFilter; + +public class HFile { + + public void openFile(JFrame f,JTextArea textArea) { + JFileChooser fileChooser = new JFileChooser(); + fileChooser.setCurrentDirectory(new File(".")); + fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); + fileChooser.setMultiSelectionEnabled(false); + fileChooser.setFileFilter(new FileNameExtensionFilter("txt(*.txt)", "txt")); + int result = fileChooser.showOpenDialog(f); + if(result==1) + return ; + if (result == JFileChooser.APPROVE_OPTION) { + try { + textArea.setText(""); + File file = fileChooser.getSelectedFile(); + FileInputStream fis=new FileInputStream(file); + try{ + byte[] data = new byte[1024]; + int i = fis.read(data); + String s = new String(data,0,i); + textArea.append(s); + }catch(Exception e){ + e.printStackTrace(); + }finally{ + try{ + fis.close(); + }catch(Exception e){} + } + f.setTitle(file.getName()+" - 文本编辑器"); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + public void saveFile(JFrame f,JTextArea textArea) { + JFileChooser fileChooser = new JFileChooser(); + fileChooser.setCurrentDirectory(new File(".")); + fileChooser.setSelectedFile(new File("新建记事本.txt")); + int select = fileChooser.showSaveDialog(f); + if (select == JFileChooser.APPROVE_OPTION) { + File file = fileChooser.getSelectedFile(); + try { + OutputStream outToFileEnd = new FileOutputStream(file); + String string = textArea.getText(); + byte[] bs = string.getBytes(); + outToFileEnd.write(bs); + outToFileEnd.close(); + f.setTitle(file.getName()+" - 文本编辑器"); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } +} + diff --git a/src/java2020spring/HandleListener.java b/src/java2020spring/HandleListener.java new file mode 100644 index 0000000000000000000000000000000000000000..7ce2eae139286119ed9bb617038a72bf0cabbc9d --- /dev/null +++ b/src/java2020spring/HandleListener.java @@ -0,0 +1,72 @@ +package java2020spring; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.undo.UndoManager; + +public class HandleListener implements ActionListener { + JTextArea text; + int flagWrap; + UndoManager undomg = new UndoManager(); + public void setText(JTextArea Text) { + text=Text; + } + public void getflagWrap(int flagWrap) { + this.flagWrap =flagWrap; + } + public void actionPerformed(ActionEvent e) { + String str =e.getActionCommand(); + + if(str.equals("copy")) + text.copy(); + + else if(str.equals("cut")) + text.cut(); + + else if(str.contentEquals("paste")) + text.paste(); + + else if(str.contentEquals("wrap")) { + if(flagWrap==0) { + text.setLineWrap(true); + flagWrap=1; + } + else if(flagWrap==1) { + text.setLineWrap(false); + flagWrap=0; + } + } + + else if(str.contentEquals("delete")) { + StringBuffer tmp = new StringBuffer ( text.getText()); + int start = text.getSelectionStart(); + int len = text.getSelectedText().length(); + tmp.delete( start , start+len); + text.setText(tmp.toString()); + } + + else if(str.contentEquals("selectAll")) { + text.selectAll(); + } + + else if(str.contentEquals("checkHelp")) {JFrame f = new JFrame("查看帮助"); + JOptionPane.showMessageDialog( + f, + "打开的txt文档的编码应该是ANSI编码的哦,不然会出现乱码.\n" + + "如果不会操作,请打开txt文件——文件——另存为——" + + "在编码那行改为ANSI即可哦.\n" + + "其他BUG请联系作者", + "查看帮助", + JOptionPane.PLAIN_MESSAGE); + } + + else if(str.contentEquals("about")) { + JFrame f = new JFrame("关于记事本"); + JOptionPane.showMessageDialog( + f, + "JAVA设计性实验\n记事本\t第一版\nDesigned By 刘佳钒", + "记事本", + JOptionPane.PLAIN_MESSAGE + ); + } + } +} diff --git a/src/java2020spring/Notepad.java b/src/java2020spring/Notepad.java new file mode 100644 index 0000000000000000000000000000000000000000..cb975e9700bc4ae53c487a4dafc8886e2d61c83f --- /dev/null +++ b/src/java2020spring/Notepad.java @@ -0,0 +1,498 @@ +package java2020spring; +import java.awt.BorderLayout; +import java.awt.FileDialog; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.InputEvent; +import java.awt.event.KeyAdapter; +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.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.io.IOException; + +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JFileChooser; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JFrame.*; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.undo.UndoManager; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JPopupMenu; +import javax.swing.JRadioButton; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.KeyStroke; + + +public class Notepad extends JFrame { + protected static final JFrame Notepad = null; + private int flagFile=0; + int flagWrap=0,flagStatusBar=0; + JTextArea text; + JMenuBar menubar; + + //记事本顶部菜单项 + JMenu menu1,menu2,menu3,menu4,menu5; + JMenuItem menu1item1,menu1item2,menu1item3,menu1item4,menu1item5,menu2item1, + menu2item2,menu2item3,menu2item4,menu2item5,menu2item6,menu3item2, + menu5item1,menu5item2; + JCheckBoxMenuItem menu3item1,menu4item1; + + //右键弹出菜单项 + JPopupMenu popupMenu; + JMenuItem popupMenu_Undo,popupMenu_Cut,popupMenu_Copy,popupMenu_Paste,popupMenu_Delete,popupMenu_SelectAll; + + HandleListener handleListener; + JLabel label=new JLabel("继续输入一个字符得到状态栏信息"); + UndoManager undomg = new UndoManager(); + + public Notepad() {} + public Notepad(String s,int x,int y,int w,int h) { + init(s); + setLocation(x,y); + setSize(w,h); + setLayout(new FlowLayout()); + setVisible(true); + setDefaultCloseOperation(DISPOSE_ON_CLOSE); + text.setLineWrap(false); + } + void init(String s) { + setTitle(s); + text=new JTextArea(40,82); + menubar=new JMenuBar(); + + //新建菜单项 + menu1=new JMenu("文件(F)"); + menu2=new JMenu("编辑(E)"); + menu3=new JMenu("格式(O)"); + menu4=new JMenu("查看(V)"); + menu5=new JMenu("帮助(H)"); + menu1item1=new JMenuItem("新建(N)"); + menu1item2=new JMenuItem("打开(O)"); + menu1item3=new JMenuItem("保存(S)"); + menu1item4=new JMenuItem("另存为(A)"); + menu1item5=new JMenuItem("退出(X)"); + menu2item1=new JMenuItem("撤销(U)"); + menu2item2=new JMenuItem("剪切(T)"); + menu2item3=new JMenuItem("复制(C)"); + menu2item4=new JMenuItem("粘贴(P)"); + menu2item5=new JMenuItem("删除(D)"); + menu2item6=new JMenuItem("全选(A)"); + menu3item1=new JCheckBoxMenuItem("自动换行(W)"); + menu3item2=new JMenuItem("字体(F)"); + menu4item1=new JCheckBoxMenuItem("状态栏(A)"); + menu5item1=new JMenuItem("查看帮助(H)"); + menu5item2=new JMenuItem("关于记事本(A)"); + + //设置部分菜单项的快捷方式 + menu1item1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK)); + menu1item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK)); + menu1item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); + + //添加菜单项的命令 + menu1item2.setActionCommand("open"); + menu2item1.setActionCommand("undo"); + menu2item2.setActionCommand("cut"); + menu2item3.setActionCommand("copy"); + menu2item4.setActionCommand("paste"); + menu2item5.setActionCommand("delete"); + menu2item6.setActionCommand("selectAll"); + menu3item1.setActionCommand("wrap"); + menu5item1.setActionCommand("checkHelp"); + menu5item2.setActionCommand("about"); + + handleListener=new HandleListener(); + handleListener.setText(text); + handleListener.getflagWrap(flagWrap); + + //为菜单项添加监听器 + menu1item2.addActionListener(handleListener); + menu2item1.addActionListener(handleListener); + menu2item2.addActionListener(handleListener); + menu2item3.addActionListener(handleListener); + menu2item4.addActionListener(handleListener); + menu2item5.addActionListener(handleListener); + menu2item6.addActionListener(handleListener); + menu3item1.addActionListener(handleListener); + menu5item1.addActionListener(handleListener); + menu5item2.addActionListener(handleListener); + + //将菜单项添加到菜单中 + menu1.add(menu1item1); + menu1.addSeparator(); + menu1.add(menu1item2); + menu1.addSeparator(); + menu1.add(menu1item3); + menu1.addSeparator(); + menu1.add(menu1item4); + menu1.addSeparator(); + menu1.add(menu1item5); + menu2.add(menu2item1); + menu2.addSeparator(); + menu2.add(menu2item2); + menu2.addSeparator(); + menu2.add(menu2item3); + menu2.addSeparator(); + menu2.add(menu2item4); + menu2.addSeparator(); + menu2.add(menu2item5); + menu2.addSeparator(); + menu2.add(menu2item6); + menu3.add(menu3item1); + menu3.addSeparator(); + menu3.add(menu3item2); + menu4.add(menu4item1); + menu5.add(menu5item1); + menu5.addSeparator(); + menu5.add(menu5item2); + menubar.add(menu1); + menubar.add(menu2); + menubar.add(menu3); + menubar.add(menu4); + menubar.add(menu5); + + setJMenuBar(menubar); + add(new JScrollPane(text)); + + //添加空白标签来实现换行 + add(new JLabel(" ")); + add(new JLabel(" ")); + add(new JLabel(" ")); + add(label); + label.setVisible(false); + + + //设置监听器 + + //设置文本框内容改变的监听器 + text.getDocument().addDocumentListener(new DocumentListener() { + @Override + public void removeUpdate(DocumentEvent e) { + flagFile=1; + } + @Override + public void insertUpdate(DocumentEvent e) { + flagFile=1; + } + @Override + public void changedUpdate(DocumentEvent e) { + // TODO 自动生成的方法存根 + } + }); + + //设置新建文件的监听器 + menu1item1.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + HFile hFile=new HFile(); + if(flagFile==1){ + int result=JOptionPane.showConfirmDialog(Notepad, + "是否保存更改?", + "记事本", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); + if(result==JOptionPane.OK_OPTION){ + hFile.saveFile(Notepad, text);//另存为 + + }else if(result==JOptionPane.NO_OPTION){ + text.setText(""); + } + flagFile=0; + } + else { + text.setText(""); + Notepad.setTitle("新建记事本"); + } + } + }); + + //设置打开文件的监听器 + menu1item2.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + HFile hFile=new HFile(); + if(flagFile==1) { + int result=JOptionPane.showConfirmDialog(Notepad, + "是否保存更改?", + "记事本-保存", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); + if(result==JOptionPane.OK_OPTION){ + hFile.saveFile(Notepad, text); + flagFile=0; + } + else if(result==JOptionPane.NO_OPTION) + flagFile=0; + } + else if(flagFile==0) { + hFile.openFile(Notepad, text); + } + + } + }); + + //设置保存文件的监听器 + menu1item3.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + new HFile().saveFile(Notepad, text); + flagFile=0; + } + }); + + //设置另存为的监听器 + + menu1item4.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + new HFile().saveFile(Notepad, text); + flagFile=0; + } + }); + + //设置手动点击退出的监听器 + menu1item5.addActionListener(new ActionListener(){ + public void actionPerformed(ActionEvent e) { + HFile hFile=new HFile(); + if(flagFile==1){ + int result=JOptionPane.showConfirmDialog(Notepad, + "是否将更改保存到新建记事本?", + "记事本", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); + if(result==JOptionPane.OK_OPTION){ + hFile.saveFile(Notepad, text);//另存为 + flagFile=0; + } + } + System.exit(0); + } + } + ); + + + //设置撤销操作的监听器 + menu2item1.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + + text.getDocument().addUndoableEditListener(undomg); + //撤销 + + undomg.undo(); + + + } + }); + + + + //设置窗口关闭的监听器 + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + HFile hFile=new HFile(); + if(flagFile==1){ + int result=JOptionPane.showConfirmDialog(Notepad, + "是否将更改保存到新建记事本?", + "记事本", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); + if(result==JOptionPane.OK_OPTION){ + hFile.saveFile(Notepad, text);//另存为 + flagFile=0; + } + } + } + @Override + public void windowOpened(WindowEvent e) { + // TODO 自动生成的方法存根 + } + @Override + public void windowIconified(WindowEvent e) { + // TODO 自动生成的方法存根 + } + @Override + public void windowDeiconified(WindowEvent e) { + // TODO 自动生成的方法存根 + } + @Override + public void windowDeactivated(WindowEvent e) { + // TODO 自动生成的方法存根 + } + + @Override + public void windowClosed(WindowEvent e) { + + } + @Override + public void windowActivated(WindowEvent e) { + // TODO 自动生成的方法存根 + } + }); + + //设置状态栏监听器 + menu4item1.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if(flagStatusBar==0) { + text.addKeyListener(new KeyAdapter() { + public void keyPressed(KeyEvent e) { + int row = 0; + int col = 0; + int total=0; + int pos = text.getCaretPosition(); + try { + row = text.getLineOfOffset(pos) + 1; + col = pos-text.getLineStartOffset(row-1); + total=text.getText().length(); + }catch(Exception e1) { + e1.printStackTrace(); + } + label.setText("共"+total+"字,"+"第" + row +"行," +"第"+ col +"列 " ); + } + + public void keyReleased(KeyEvent e) { + int row = 0; + int col = 0; + int total=0; + int pos = text.getCaretPosition(); //获得光标位置 + try { + row = text.getLineOfOffset(pos) + 1; //返回行从0算起,要+1 + col = pos-text.getLineStartOffset(row-1); + total=text.getText().length(); + }catch(Exception e1) { + e1.printStackTrace(); + } + label.setText("共"+total+"字,"+"第" + row +"行," +"第"+ col +"列 " ); + } + }); + text.addMouseListener(new MouseListener() { + + @Override + public void mousePressed(MouseEvent e) { + int row = 0; + int col = 0; + int total=0; + int pos = text.getCaretPosition(); + try { + row = text.getLineOfOffset(pos) + 1; + col = pos-text.getLineStartOffset(row-1); + total=text.getText().length(); + }catch(Exception e1) { + e1.printStackTrace(); + } + label.setText("共"+total+"字,"+"第" + row +"行," +"第"+ col +"列 " ); + + } + + @Override + public void mouseClicked(MouseEvent e) { + // TODO 自动生成的方法存根 + } + + @Override + public void mouseReleased(MouseEvent e) { + // TODO 自动生成的方法存根 + } + + @Override + public void mouseEntered(MouseEvent e) { + // TODO 自动生成的方法存根 + } + + @Override + public void mouseExited(MouseEvent e) { + // TODO 自动生成的方法存根 + } + + }); + label.setVisible(true); + flagStatusBar=1; + } + else if(flagStatusBar==1) { + label.setVisible(false); + flagStatusBar=0; + } + } + }); + + //设置字体的监听器 + menu3item2.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + new setFont(Notepad,text); + } + }); + + + //创建右键弹出菜单 + popupMenu=new JPopupMenu(); + popupMenu_Undo=new JMenuItem("撤销(U)"); + popupMenu_Cut=new JMenuItem("剪切(T)"); + popupMenu_Copy=new JMenuItem("复制(C)"); + popupMenu_Paste=new JMenuItem("粘帖(P)"); + popupMenu_Delete=new JMenuItem("删除(D)"); + popupMenu_SelectAll=new JMenuItem("全选(A)"); + + //因右键菜单撤销操作导致功能出现错误,暂时取消撤销操作的功能 + popupMenu_Undo.setEnabled(false); + + //向右键菜单添加菜单项和分隔符 + popupMenu.add(popupMenu_Undo); + popupMenu.addSeparator(); + popupMenu.add(popupMenu_Cut); + popupMenu.add(popupMenu_Copy); + popupMenu.add(popupMenu_Paste); + popupMenu.add(popupMenu_Delete); + popupMenu.addSeparator(); + popupMenu.add(popupMenu_SelectAll); + + //文本编辑区注册右键菜单事件 + popupMenu_Cut.setActionCommand("cut"); + popupMenu_Copy.setActionCommand("copy"); + popupMenu_Paste.setActionCommand("paste"); + popupMenu_Delete.setActionCommand("delete"); + popupMenu_SelectAll.setActionCommand("selectAll"); + + popupMenu_Cut.addActionListener(handleListener); + popupMenu_Copy.addActionListener(handleListener); + popupMenu_Paste.addActionListener(handleListener); + popupMenu_Delete.addActionListener(handleListener); + popupMenu_SelectAll.addActionListener(handleListener); + + //文本编辑区注册右键菜单事件 + text.addMouseListener(new MouseAdapter() + { public void mousePressed(MouseEvent e) + { if(e.isPopupTrigger()) + { popupMenu.show(e.getComponent(),e.getX(),e.getY()); + } + + text.requestFocus(); + } + public void mouseReleased(MouseEvent e) + { if(e.isPopupTrigger()) + { popupMenu.show(e.getComponent(),e.getX(),e.getY()); + } + + text.requestFocus(); + } + }); + + popupMenu_Undo.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + text.getDocument().addUndoableEditListener(undomg); + undomg.undo(); + } + }); + + } +} + diff --git a/src/java2020spring/Test.java b/src/java2020spring/Test.java index fc09c195f566d0e707f5e8a2f05fd168069c73a7..baf2ed68426dfe2c2e70102bfdb2ee4d90ce1dc3 100644 --- a/src/java2020spring/Test.java +++ b/src/java2020spring/Test.java @@ -3,7 +3,7 @@ package java2020spring; public class Test { public static void main(String[] args) { - System.out.println("Hello world!"); + Notepad notepad=new Notepad("Notepad",20,20,850,900); } diff --git a/src/java2020spring/setFont.java b/src/java2020spring/setFont.java new file mode 100644 index 0000000000000000000000000000000000000000..72bf2c59d1bb3c7c027a6678754810ac87c41760 --- /dev/null +++ b/src/java2020spring/setFont.java @@ -0,0 +1,145 @@ +package java2020spring; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; + +public class setFont extends JDialog { + public setFont(JFrame f,JTextArea textArea) { + //获取系统字体库 + GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment(); + String[] fontNames = e.getAvailableFontFamilyNames(); + String[] fontStyle=new String[]{"常规","粗体","斜体","粗斜体"}; + Integer[] fontsize=new Integer[] {8,9,10,11,12,13,14,16,18,20,22,24,26,28,30,32,36,48,72}; + + JDialog jdlg = new JDialog(f, "字体设置", true); + jdlg.setSize(453, 325); + jdlg.setLocationRelativeTo(null); + jdlg.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + JPanel panel=new JPanel(); + panel.setLayout(null); + + JButton yes=new JButton("确定"); + JButton no=new JButton("取消"); + JButton setfontcolor=new JButton("字体颜色"); + JLabel fonts=new JLabel("字体:"); + JLabel style=new JLabel("样式:"); + JLabel size=new JLabel("大小:"); + JLabel cg=new JLabel("AaBbCc"); + + // 创建下拉列表框 + final JComboBox comboBox = new JComboBox(fontNames); + final JComboBox comboBox2=new JComboBox(fontStyle); + final JComboBox comboBox3=new JComboBox(fontsize); + + // 添加条目选中状态改变的监听器 + comboBox.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + if (e.getStateChange() == ItemEvent.SELECTED) { + cg.setFont(new Font((String) comboBox.getSelectedItem(), + cg.getFont().getStyle(), cg.getFont().getSize())); + } + } + }); + comboBox2.addItemListener(new ItemListener() { + public void itemStateChanged(ItemEvent e) { + if(e.getStateChange()==ItemEvent.SELECTED) { + if(comboBox2.getSelectedItem().equals("常规")) { + cg.setFont(new Font(cg.getFont().getName(), Font.PLAIN, + cg.getFont().getSize())); + } + else if(comboBox2.getSelectedItem().equals("粗体")){ + cg.setFont(new Font(cg.getFont().getName(), Font.BOLD, + cg.getFont().getSize())); + } + else if(comboBox2.getSelectedItem().equals("斜体")){ + cg.setFont(new Font(cg.getFont().getName(), Font.ITALIC, + cg.getFont().getSize())); + } + else if(comboBox2.getSelectedItem().equals("粗斜体")) { + cg.setFont(new Font(cg.getFont().getName(), Font.BOLD+ Font.ITALIC, + cg.getFont().getSize())); + } + } + } + }); + comboBox3.addItemListener(new ItemListener() { + public void itemStateChanged(ItemEvent e) { + if(e.getStateChange()==ItemEvent.SELECTED) { + cg.setFont(new Font(cg.getFont().getName(), cg.getFont().getStyle(), + (int) comboBox3.getSelectedItem())); + + } + } + }); + + setfontcolor.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + Color color = JColorChooser.showDialog(f, "选取颜色", null); + if (color == null) { + return; + } + textArea.setForeground(color); + } + }); + + yes.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + textArea.setFont(cg.getFont()); + jdlg.setVisible(false); + } + }); + + no.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + jdlg.setVisible(false); + } + }); + + //设置元件位置和宽高 + fonts.setBounds(20,20,45,18); + style.setBounds(190,20,45,18); + size.setBounds(313,20,45,18); + comboBox.setBounds(20,42,170,22); + comboBox2.setBounds(190,42,119,22); + comboBox3.setBounds(309, 42, 119, 22); + cg.setBounds(30,89,378,137); + setfontcolor.setBounds(20,249,102,30); + yes.setBounds(300,249,62,30); + no.setBounds(366,249,62,30); + + fonts.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 16)); + style.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 16)); + size.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 16)); + cg.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 12)); + setfontcolor.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 12)); + yes.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 13)); + no.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 13)); + comboBox.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 16)); + comboBox2.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 16)); + comboBox3.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 16)); + + // 设置字体下拉框为文本框的字体样式 + comboBox.setSelectedItem(textArea.getFont().getFontName()); + comboBox3.setSelectedItem(textArea.getFont().getSize()); + comboBox2.setSelectedIndex(textArea.getFont().getStyle()); + + // 添加到内容面板 + panel.add(fonts); + panel.add(style); + panel.add(size); + panel.add(comboBox); + panel.add(comboBox2); + panel.add(comboBox3); + panel.add(setfontcolor); + panel.add(yes); + panel.add(no); + panel.add(cg); + + jdlg.setResizable(false); + jdlg.setContentPane(panel); + jdlg.setVisible(true); + } +}