`
xcxinghai
  • 浏览: 31833 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

字体工具栏

 
阅读更多

今天用java写了一个字体工具栏。

Code:
  1. importjavax.swing.*;
  2. importjava.awt.*;
  3. importjava.awt.event.*;
  4. //测试类
  5. publicclassExec{
  6. publicstaticvoidmain(String[]args){
  7. //创建窗体类DemoWindow
  8. DemoWindowdw=newDemoWindow("字体工具栏");
  9. //将窗体的宽度和高度分别设置为屏幕宽度和屏幕高度的1/3,左上角位置也设置为屏幕宽度和屏幕高度的1/3处
  10. ToolkittheKit=dw.getToolkit();
  11. DimensionwndSize=theKit.getScreenSize();
  12. dw.setBounds(wndSize.width/3,wndSize.height/3,wndSize.width/3,
  13. wndSize.height/3);
  14. //点击关闭按钮可以退出程序
  15. dw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  16. //设置窗体为可见
  17. dw.setVisible(true);
  18. }
  19. }
  20. //界面窗体类
  21. classDemoWindowextendsJFrameimplementsActionListener,ItemListener{
  22. //显示文本内容的文本区
  23. JTextAreajta=newJTextArea();
  24. //设置文本区的滚动条
  25. intv=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
  26. inth=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
  27. JScrollPanejsp=newJScrollPane(jta,v,h);
  28. //工具栏
  29. JToolBartoolbar=newJToolBar();
  30. //"黑体"按钮图标
  31. ImageIconii1=newImageIcon("images/bold.gif");//有图片……
  32. //"黑体"按钮
  33. JToggleButtonjtb1=newJToggleButton(ii1);
  34. //"斜体"按钮图标
  35. ImageIconii2=newImageIcon("images/italic.gif");
  36. //"斜体"按钮
  37. JToggleButtonjtb2=newJToggleButton(ii2);
  38. //字体名称组合框
  39. JComboBoxjcb1=null;
  40. //字体大小组合框
  41. JComboBoxjcb2=null;
  42. //构造函数
  43. publicDemoWindow(Stringtitle){
  44. super(title);
  45. //添加文本框
  46. add(jsp);
  47. //获取系统所有字体
  48. GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();
  49. StringfontNames[]=ge.getAvailableFontFamilyNames();
  50. StringsizeNames[]=newString[60];
  51. for(inti=0;i<59;i++){
  52. sizeNames[i]=20+i+"";
  53. }
  54. FontnewFont=newFont(null,0,20);
  55. jta.setFont(newFont);
  56. //创建字体名称组合框
  57. jcb1=newJComboBox(fontNames);
  58. jcb2=newJComboBox(sizeNames);
  59. jcb1.setMaximumSize(newDimension(200,100));
  60. //设置文本框的最大的尺寸
  61. jcb2.setMaximumSize(newDimension(50,100));
  62. //设置按钮的边界填充距离
  63. jtb1.setMargin(newInsets(0,0,0,0));
  64. jtb2.setMargin(newInsets(0,0,0,0));
  65. //设置工具栏
  66. toolbar.add(jcb1);
  67. toolbar.addSeparator();
  68. toolbar.add(jcb2);
  69. toolbar.addSeparator();
  70. toolbar.add(jtb1);
  71. toolbar.add(jtb2);
  72. //设置工具栏的翻转状态
  73. toolbar.setRollover(true);
  74. //添加工具栏
  75. add(toolbar,BorderLayout.NORTH);
  76. //添加事件监听器
  77. jtb1.addActionListener(this);
  78. jtb2.addActionListener(this);
  79. jcb1.addItemListener(this);
  80. jcb2.addItemListener(this);
  81. this.setVisible(true);
  82. this.setSize(500,250);
  83. }
  84. //响应单击按钮
  85. publicvoidactionPerformed(ActionEvente){
  86. //获取文本区的当前字体
  87. Fontfont=jta.getFont();
  88. //处理设置黑体
  89. if(e.getSource()==jtb1){
  90. //在现有字体上添加黑体属性
  91. jta.setFont(font.deriveFont(font.getStyle()^Font.BOLD));
  92. }elseif(e.getSource()==jtb2){
  93. //在现有字体上添加斜体
  94. jta.setFont(font.deriveFont(font.getStyle()^Font.ITALIC));
  95. }
  96. //文本区获得焦点
  97. jta.requestFocus();
  98. }
  99. //响应选中的组合框
  100. publicvoiditemStateChanged(ItemEvente){
  101. //获取文本区的当前的文字
  102. Fontfont=jta.getFont();
  103. if(e.getSource()==jcb1){
  104. //根据选中的字体名称,得到新的字体
  105. FontnewFont=newFont((String)jcb1.getSelectedItem(),
  106. font.getStyle(),Integer.parseInt((String)jcb2.getSelectedItem()));
  107. //设置文本区的新字体
  108. jta.setFont(newFont);
  109. }elseif(e.getSource()==jcb2){
  110. //根据选中的字体大小,得到新的字体
  111. FontnewFont=newFont((String)jcb1.getSelectedItem(),
  112. font.getStyle(),Integer.parseInt((String)jcb2.getSelectedItem()));
  113. //设置文本区的新字体
  114. jta.setFont(newFont);
  115. }
  116. //文本区获得焦点
  117. jta.requestFocus();
  118. }
  119. }

用到两张图片,不能插入,请点击:student.csdn.net/space.php


ps:我的新博客地址:http://www.xinghaixu.com

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics