EditorJFrame

来源:互联网 发布:网络主播放的歌曲 编辑:程序博客网 时间:2024/06/02 04:02

import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.GraphicsEnvironment;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.ButtonGroup;import javax.swing.JCheckBox;import javax.swing.JCheckBoxMenuItem;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPopupMenu;import javax.swing.JRadioButton;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JToolBar;import javax.swing.KeyStroke;import com.sun.corba.se.spi.orbutil.fsm.Input;public class EditorJFrame extends JFrame implements MouseListener, ActionListener {private static final long serialVersionUID = 1L;JComboBox combobox_name ,combobox_color;JTextArea text;JRadioButton[] menuit;Color[] colors = {Color.red,Color.green,Color.blue};JCheckBox checkbox_bold,checkbox_italic;JRadioButton[] radios;JCheckBoxMenuItem cbmenuitem;JPopupMenu popupmenu;Color color;public EditorJFrame() {super("文本编辑器");Dimension dim = this.getToolkit().getScreenSize();this.setBounds(dim.width/4, dim.height/4, dim.width/2, dim.height/2);setDefaultCloseOperation(EXIT_ON_CLOSE);{JToolBar toolbar = new JToolBar();getContentPane().add(toolbar,BorderLayout.NORTH);GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();String fontsName[] = ge.getAvailableFontFamilyNames();combobox_name = new JComboBox(fontsName);combobox_name.addActionListener(this);toolbar.add(combobox_name);String[] fonts_color = {"20","30","40","50","60","70"};combobox_color = new JComboBox(fonts_color);combobox_color.addActionListener(this);toolbar.add(combobox_color);combobox_color.setEditable(true);String[] stylestr = {"粗体","斜体"};checkbox_bold = new JCheckBox(stylestr[0]);checkbox_italic = new JCheckBox(stylestr[1]);checkbox_bold.addActionListener(this);checkbox_italic.addActionListener(this);toolbar.add(checkbox_bold);toolbar.add(checkbox_italic);ButtonGroup bugroup = new ButtonGroup();String[] colorstr = {"red","green","blue"};radios = new JRadioButton[colorstr.length];for (int i = 0; i < colorstr.length; i++) {radios[i] = new JRadioButton(colorstr[i]);radios[i].addActionListener(this);bugroup.add(radios[i]);toolbar.add(radios[i]);}}{text = new JTextArea("Welcome-------中文来了");text.setForeground(color=colors[0]);this.getContentPane().add(new JScrollPane(text));text.addMouseListener(this);}MyMenu();setVisible(true);}public void MyMenu(){JMenuBar menubar = new JMenuBar();setJMenuBar(menubar);String[] menustr = {"文件","编辑","插入","格式","工具","窗口","帮助"};String[][] menuitemstr = {{"新建","打开","保存","另存为","|","退出"},{"撤销","恢复","|","剪切","复制","粘贴","|","查找","替换"},{"日期","文本"},{"字体"},{"字数统计","自动更改","拼写检查"},{},{}};JMenu[] menus = new JMenu[menustr.length];JMenuItem[][] menuitems = new JMenuItem[menuitemstr.length][];for (int i = 0; i < menuitems.length; i++) {menus[i] = new JMenu(menustr[i]);menubar.add(menus[i]);menuitems[i] = new JMenuItem[menuitemstr[i].length];for (int j = 0; j < menuitems[i].length; j++) {if(menuitemstr[i][j]=="|"){menus[i].addSeparator();}else{menuitems[i][j] = new JMenuItem(menuitemstr[i][j]);menus[i].add(menuitems[i][j]);menuitems[i][j].addActionListener(this);}}}{JMenu menu_str = new JMenu("字形");menus[3].add(menu_str);String[] stylestr = {"粗体","斜体"};cbmenuitem = new JCheckBoxMenuItem();for (int i = 0; i < stylestr.length; i++) {cbmenuitem = new JCheckBoxMenuItem(stylestr[i]);menu_str.add(cbmenuitem);}}{JMenu menu_color = new JMenu("颜色");menus[3].add(menu_color);String[] colorstr = {"red","green","blue"};ButtonGroup buttongroop = new ButtonGroup();menuit = new JRadioButton[colorstr.length];for (int i = 0; i < colorstr.length; i++) {menuit[i] = new JRadioButton(colorstr[i]);menuit[i].addActionListener(this);buttongroop.add(menuit[i]);menu_color.add(menuit[i]);}}{popupmenu = new JPopupMenu();String[] menuitems_cut = {"剪切","复制","粘贴"};JMenuItem[] popupmenuitems = new JMenuItem[menuitems_cut.length];for (int i = 0; i < popupmenuitems.length; i++) {popupmenuitems[i] = new JMenuItem(menuitems_cut[i]);popupmenu.add(popupmenuitems[i]);popupmenuitems[i].addActionListener(this);}text.add(popupmenu);popupmenuitems[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,InputEvent.CTRL_MASK));}}public static void main(String[] args) {new EditorJFrame();}@Overridepublic void mouseClicked(MouseEvent e) {if(e.getModifiers()==MouseEvent.BUTTON3_MASK){popupmenu.show(text, e.getX(), e.getY());}}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic void mouseExited(MouseEvent e) {}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getSource() instanceof JComboBox ||e.getSource() instanceof JCheckBox){try {String fontname = (String) combobox_name.getSelectedItem();int size = Integer.parseInt((String)combobox_color.getSelectedItem());if(size<4||size>120){throw new Exception("SizeException");}Font font = text.getFont();int style = font.getStyle();if(e.getSource()==checkbox_bold){style = style^1;}if(e.getSource()==checkbox_italic){style = style^2;}text.setFont(new Font(fontname, style, size));} catch (NumberFormatException e1) {JOptionPane.showConfirmDialog(this, "\""+(String)combobox_color.getSelectedItem()+"\"不能转换成整数,请重新输入!");} catch (Exception e2) {if(e2.getMessage().equals("SizeException")){JOptionPane.showMessageDialog(this, "字体不合适,请重新输入!");}}}if(e.getSource() instanceof JRadioButton){if(e.getSource()==radios[0]||e.getSource()==menuit[0]){color = colors[0];}if(e.getSource()==radios[1]||e.getSource()==menuit[1]){color = colors[1];}if(e.getSource()==radios[2]||e.getSource()==menuit[2]){color = colors[2];}text.setForeground(color);}if(e.getSource()==combobox_color){String size = (String) combobox_color.getSelectedItem();int i = 0,n=combobox_color.getItemCount();while(i<n && size.compareToIgnoreCase((String)combobox_color.getItemAt(i))>=0){if(size.compareToIgnoreCase((String)combobox_color.getItemAt(i))==0){return ;}i++;}combobox_color.insertItemAt(size, i);}if(e.getSource() instanceof JMenuItem){if(e.getActionCommand().equals("退出")){if(JOptionPane.showConfirmDialog(this, "亲~~你真的要退出吗?")==JOptionPane.OK_OPTION){System.exit(0);}}if(e.getActionCommand().equals("复制")){text.copy();}if(e.getActionCommand().equals("粘贴")){text.paste();}if(e.getActionCommand().equals("剪贴")){text.cut();}}}}




0 0
原创粉丝点击