| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2875 人关注过本帖
标题:分享 本人实现的记事本中的字体对话框
只看楼主 加入收藏
xiao_ou0725
Rank: 2
来 自:江苏苏州
等 级:论坛游民
帖 子:59
专家分:20
注 册:2008-10-24
结帖率:0
收藏
 问题点数:0 回复次数:11 
分享 本人实现的记事本中的字体对话框
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.List;
public class FontDialog extends JDialog
{
 private static final long serialVersionUID = -6289497815381851003L;
 private JButton button_ok;
 private JButton button_cancel;
 private Font font;
 private JList list_font;
 private JList list_style;
 private JList list_size;
 private JLabel label_font;
 private JLabel label_style;
 private JLabel label_size;
 private JLabel label_demo;
 private JLabel label_code;
 private JTextField text_font;
 private JTextField text_style;
 private JTextField text_size;
 private JTextField text_demo = new JTextField("ABCDEF");
 private JComboBox choice_code;
 private String[] fontItems = GraphicsEnvironment
   .getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
 private String[] typeItems =
 {
   "常规", "斜体", "粗体", "粗斜体"
 };
 private String[] sizeItems =
 {
   "8", "9", "10", "11", "12", "14", "18", "24", "30", "36", "40",
   "48", "60", "72"
 };
 // 这是对话框model,List类型,0 是字体,1 是风格,2 是大小;
 private List model;
 public List getModel()
 {
  return model;
 }
 public FontDialog(JFrame frame, boolean modal, List model)
 {
  this.model = model;
  init();
  setTitle("字体");
  setModal(modal);
  setBounds(400, 200, 435, 320);
  setResizable(false);
  setDefaultCloseOperation(DISPOSE_ON_CLOSE);
 }
 private void init()
 {
  label_font = new JLabel("字体:");
  label_style = new JLabel("字形:");
  label_size = new JLabel("大小:");
  label_demo = new JLabel("示例:");
  label_code = new JLabel("字符集:");
  setLayout(null);
  button_ok = new JButton("确定");
  button_ok.setBounds(350, 45, 65, 20);
  button_ok.addActionListener(new ActionListener()
  {
   @Override
   public void actionPerformed(ActionEvent e)
   {
    model.clear();
    model.add(text_font.getText());
    model.add(list_style.getSelectedIndex());
    model.add(text_size.getText());
    setVisible(false);
   }
  });
  add(button_ok);
  button_cancel = new JButton("取消");
  button_cancel.setBounds(350, 70, 65, 20);
  button_cancel.addActionListener(new ActionListener()
  {
   @Override
   public void actionPerformed(ActionEvent e)
   {
   
   }
  });
  add(button_cancel);
  label_font.setBounds(13, 27, 145, 20);
  add(label_font);
  text_font = new JTextField();
  text_font.setBounds(13, 47, 145, 19);
  add(text_font);
  list_font = new JList(fontItems);
  list_font.addMouseListener(new MouseAdapter()
  {
   public void mouseClicked(MouseEvent e)
   {
    text_font.setText(list_font.getSelectedValue().toString());
    font = new Font(text_font.getText(), getFontStyle(text_style
      .getText()), Integer.parseInt(text_size.getText()
      .trim()));
    text_demo.setFont(font);
   }
  });
  list_font.setBounds(13, 65, 145, 87);
  JScrollPane font_scrollPane = new JScrollPane(list_font);
  font_scrollPane.setBounds(13, 65, 145, 87);
  add(font_scrollPane);
  label_style.setBounds(168, 27, 110, 20);
  add(label_style);
  text_style = new JTextField();
  text_style.setBounds(168, 47, 110, 19);
  add(text_style);
  list_style = new JList(typeItems);
  list_style.addMouseListener(new MouseAdapter()
  {
   public void mouseClicked(MouseEvent e)
   {
    text_style.setText(list_style.getSelectedValue().toString());
    font = new Font(text_font.getText(), getFontStyle(text_style
      .getText()), Integer.parseInt(text_size.getText()
      .trim()));
    text_demo.setFont(font);
   }
  });
  list_style.setBounds(168, 65, 110, 87);
  JScrollPane style_scrollPane = new JScrollPane(list_style);
  style_scrollPane.setBounds(168, 65, 110, 87);
  add(style_scrollPane);
  label_size.setBounds(287, 27, 52, 20);
  add(label_size);
  text_size = new JTextField();
  text_size.setBounds(287, 47, 52, 19);
  add(text_size);
  list_size = new JList(sizeItems);
  list_size.addMouseListener(new MouseAdapter()
  {
   public void mouseClicked(MouseEvent e)
   {
    text_size.setText(list_size.getSelectedValue().toString());
    font = new Font(text_font.getText(), getFontStyle(text_style
      .getText()), Integer.parseInt(text_size.getText()
      .trim()));
    text_demo.setFont(font);
   }
  });
  list_size.setBounds(287, 65, 52, 87);
  JScrollPane size_scrollPane = new JScrollPane(list_size);
  size_scrollPane.setBounds(287, 65, 52, 87);
  add(size_scrollPane);
  label_demo.setBounds(170, 165, 50, 20);
  add(label_demo);
  text_demo.setFont(font);
  text_demo.setEditable(false);
  text_demo.setBounds(180, 187, 150, 35);
  add(text_demo);
  label_code.setBounds(168, 235, 50, 20);
  add(label_code);
  choice_code = new JComboBox();
  choice_code.addItem("CHINESE_GB2312");
  choice_code.addItem("西方");
  choice_code.setBounds(168, 260, 172, 20);
  add(choice_code);
  getRootPane().setDefaultButton(button_ok);
  String font_name = (String) model.get(0);
  int font_style = (Integer) model.get(1);
  String font_size = (String) model.get(2);
  list_font.setSelectedValue(font_name, true);
  text_font.setText(font_name);
  list_style.setSelectedIndex(font_style);
  text_style.setText(list_style.getSelectedValue().toString());
  list_size.setSelectedValue(font_size, true);
  text_size.setText(font_size);
 }
 private int getFontStyle(String style)
 {
  if (style.equals("斜体"))
   return Font.ITALIC;
  else
   if (style.equals("粗体"))
    return Font.BOLD;
   else
    if (style.equals("粗斜体"))
     return Font.ITALIC | Font.BOLD;
    else
     return Font.PLAIN;
 }
}

有点长,但是实在不知道字符集怎么实现 有知道的给我指教指教
搜索更多相关主题的帖子: 字符集 记事本 
2009-07-24 20:09
xiao_ou0725
Rank: 2
来 自:江苏苏州
等 级:论坛游民
帖 子:59
专家分:20
注 册:2008-10-24
收藏
得分:0 
抱歉 o(∩_∩)o...  注释忘记了 真麻烦了
2009-07-24 20:12
ET_bug
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:黑侠
帖 子:89
专家分:602
注 册:2009-7-21
收藏
得分:0 
真的好长....很的我眼晕....

编程之路无止境!
可是小子才入门!
2009-07-24 21:23
xiao_ou0725
Rank: 2
来 自:江苏苏州
等 级:论坛游民
帖 子:59
专家分:20
注 册:2008-10-24
收藏
得分:0 
其实这是老师要求我们编程规范 才写得这么长 基本上都是组件的添加和事件的处理工作
2009-07-26 21:06
家乡的雨
Rank: 2
等 级:论坛游民
帖 子:25
专家分:44
注 册:2009-1-12
收藏
得分:0 
private static final long serialVersionUID = -6289497815381851003L;
一直不明白这个是什么?请教一下楼主,谢谢!
2009-07-27 12:32
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:0 
看不懂哈。我新手来的.+注释吧。楼主
回帖是一种美德!传说每次回
帖即可获得 10 分可用积分!

C#超级群 74862681,欢迎大家的到来!
2009-07-27 13:09
封闭
Rank: 9Rank: 9Rank: 9
来 自:广东省汕头市
等 级:蜘蛛侠
威 望:1
帖 子:501
专家分:1084
注 册:2007-9-14
收藏
得分:0 
顶楼主了。
2009-07-27 16:25
kingicing
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2009-7-26
收藏
得分:0 
2009-07-28 10:19
mx250052
Rank: 2
等 级:论坛游民
帖 子:61
专家分:25
注 册:2009-3-1
收藏
得分:0 
我还没有学这么快啊~楼主加油!!!大家一起共同进步哈!
2009-07-28 10:40
xiao_ou0725
Rank: 2
来 自:江苏苏州
等 级:论坛游民
帖 子:59
专家分:20
注 册:2008-10-24
收藏
得分:0 
o(∩_∩)o...  我也是最近因为作业的关系才做这个东西的 大家一起加油  记事本做了 但是有好几个地方没有实现
2009-07-30 18:01
快速回复:分享 本人实现的记事本中的字体对话框
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016196 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved