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.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JCheckBox;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
public class EditorJFrame3 extends JFrame implements ActionListener{
private JComboBox combox_name,combox_size;//字体、字号组合框
private JCheckBox checkb_bold,checkb_italic;//粗体斜体复选框
JCheckBoxMenuItem bold,italic;//粗体、斜体复选菜单项
private JRadioButton radiob_color[];//颜色单选按钮
private JTextArea text;
private Color color;
private File file;
public EditorJFrame3(){
super("文本编辑器");//默认BorderLayout布局
Dimension dim = getToolkit().getScreenSize();
setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2);
setDefaultCloseOperation(EXIT_ON_CLOSE);
text = new JTextAreaMenu("Welcome 欢迎");
add(new JScrollPane(text));
addmyMenu();//菜单栏
addmyJToolbar();//工具栏
setVisible(true);
}
private void addmyMenu(){//菜单栏部分
JMenuBar menubar = new JMenuBar();//菜单栏
setJMenuBar(menubar);
String menustr[] = {"文件","编辑","帮助"};
JMenu menu[]=new JMenu[menustr.length];//菜单
for(int i=0;i<menustr.length;i++){
menu[i] = new JMenu(menustr[i]);
menubar.add(menu[i]);
}
JMenuItem open = new JMenuItem("打开",new ImageIcon("images/open.jpg"));
open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));//快捷键
menu[0].add(open);//菜单项加入到菜单"文件"里
open.addActionListener(this);
JMenuItem save = new JMenuItem("保存",new ImageIcon("images/open.jpg"));
menu[0].add(save);
save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
save.addActionListener(this);
JMenuItem saveas = new JMenuItem("另存为");
saveas.addActionListener(this);
menu[0].add(saveas);
menu[0].addSeparator();//添加分割线
JMenuItem menuitem_exit = new JMenuItem("退出");
menu[0].add(menuitem_exit);
menuitem_exit.addActionListener(this);////////// //注册事件
JMenu menu_style = new JMenu("字形");//菜单
bold = new JCheckBoxMenuItem("粗体");
bold.addActionListener(this);
menu_style.add(bold);//复选框菜单项加入到菜单中
italic = new JCheckBoxMenuItem("斜体");
italic.addActionListener(this);
menu_style.add(italic);
menu[1].add(menu_style);
JMenu menu_color = new JMenu("颜色");//菜单
menu[1].add(menu_color);
ButtonGroup buttongroup = new ButtonGroup();//按钮组
String colorstr[]={"红","绿","蓝"};
JRadioButtonMenuItem rbmi_color[]=new JRadioButtonMenuItem[colorstr.length];//单选菜单项
for(int i =0;i<colorstr.length;i++){
rbmi_color[i] = new JRadioButtonMenuItem(colorstr[i]);
buttongroup.add(rbmi_color[i]);//单选菜单项添加到按钮组中
//
menu_color.add(rbmi_color[i]);//单选菜单项添加到菜单中
}
JMenuItem author = new JMenuItem("关于作者");
author.addActionListener(this);
menu[2].add(author);
}
private void addmyJToolbar(){//工具栏部分
JToolBar toolbar=new JToolBar(); //创建工具栏,默认水平方向
add(toolbar,"North"); //工具栏添加到框架内容窗格北部
GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontsName=ge.getAvailableFontFamilyNames(); //获得系统字体
combox_name = new JComboBox(fontsName); //组合框显示系统字体
combox_name.addActionListener(this);////////// //注册事件
toolbar.add(combox_name);//字体组合框加到工具栏里
//设置组合框的宽度260和高度30
combox_name.setMaximumSize(new Dimension(260,30));
String sizestr[]={"20","30","40","50","60","70"};
combox_size = new JComboBox(sizestr); //数组加到字号组合框
//组合框默认不可编辑
combox_size.setEditable(true); //设置组合框可编辑
combox_size.addActionListener(this);////////// //注册事件
combox_size.setMaximumSize(new Dimension(180,30));
toolbar.add(combox_size);//字体组合框加到工具栏里
checkb_bold = new JCheckBox("粗体"); //字形复选框
toolbar.add(checkb_bold);
checkb_bold.addActionListener(this);////////// //注册事件
checkb_italic = new JCheckBox("斜体");
toolbar.add(checkb_italic);
checkb_italic.addActionListener(this);////////// //注册事件
String colorstr[]={"红","绿","蓝"};
ButtonGroup bgroup_color = new ButtonGroup(); //按钮组
radiob_color = new JRadioButton[colorstr.length];//颜色单选按钮数组
for (int i=0; i<radiob_color.length; i++)
{
radiob_color[i]=new JRadioButton(colorstr[i]); //颜色单选按钮
radiob_color[i].addActionListener(this);///////////每个单选项均要注册事件
bgroup_color.add(radiob_color[i]); //单选按钮添加到按钮组
toolbar.add(radiob_color[i]); ////////单选按钮添加到工具栏
}
//radiob_color[0].setSelected(true); //设置单选按钮的选中状态
}
public static void main(String[] args) {
new EditorJFrame3();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() instanceof JMenuItem) //单击菜单项
{
if(e.getActionCommand()=="打开"){
open();
return;
}
if(e.getActionCommand()=="保存"){
save();
return;
}
if(e.getActionCommand() == "另存为"){
saveas();
return;
}
if (e.getActionCommand()=="退出")
if (JOptionPane.showConfirmDialog(this, "终止当前程序运行?")==0)
System.exit(0); //单击确认对话框中的“是”按钮,结束程序运行
if(e.getActionCommand() == "关于作者"){
AboutAuthor aboutAuthor = new AboutAuthor();
aboutAuthor.setSize(375, 200);
aboutAuthor.setLocation(340, 220);
aboutAuthor.setVisible(true);
}
}
if (e.getSource() instanceof JRadioButton) //选择一个颜色单选框
{
if (e.getSource()==radiob_color[0])
color = new Color(255,0,0);
if (e.getSource()==radiob_color[1])
color = new Color(0,255,0);
if (e.getSource()==radiob_color[2])
color = new Color(0,0,255);
text.setForeground(color); //设置文本区颜色
}
if (e.getSource() instanceof JComboBox || e.getSource() instanceof JCheckBox ||
e.getSource() == bold || e.getSource()==italic)
{ //组合框、复选框
int size=0;
try
{
String fontname = (String)combox_name.getSelectedItem();//获得字体名
size = Integer.parseInt((String)combox_size.getSelectedItem());//获得字号
if (size<4 || size>120) //字号超出指定范围时,抛出异常对象
throw new Exception("SizeException");
Font font = text.getFont(); //获得文本区的当前字体对象
int style = font.getStyle(); //获得字形
if (e.getSource()==checkb_bold || e.getSource() == bold) //粗体
java swing综合程序
4星 · 超过85%的资源 需积分: 10 29 浏览量
2011-03-10
15:36:08
上传
评论 2
收藏 28KB RAR 举报
yuyuyuyuy
- 粉丝: 41
- 资源: 7