仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 566|回复: 8
打印 上一主题 下一主题

[学习教程] 了解下JAVA的Swing对JTextPane中字体色彩的设置

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:09:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JEditorPane;
importjavax.swing.JPanel;
importjavax.swing.JScrollPane;
importjavax.swing.JTextPane;
importjavax.swing.UIManager;
importjavax.swing.WindowConstants;
importjavax.swing.text.AttributeSet;
importjavax.swing.text.DefaultStyledDocument;
importjavax.swing.text.Document;
importjavax.swing.text.EditorKit;
importjavax.swing.text.MutableAttributeSet;
importjavax.swing.text.SimpleAttributeSet;
importjavax.swing.text.StyleConstants;
importjavax.swing.text.StyledDocument;
importjavax.swing.text.StyledEditorKit;
publicclassNewJFrameextendsjavax.swing.JFrameimplementsActionListener{
privateJPaneljp1;
privateJButtoncolor;
privateJTextPanejep;
privateJScrollPanejsp;
privateJButtonfont;
/**
 *Auto-generatedmainmethodtodisplaythisJFrame
 */
publicstaticvoidmain(String[]args){
 NewJFrameinst=newNewJFrame();
 inst.setVisible(true);
}
publicNewJFrame(){
 super();
 initGUI();
}
privatevoidinitGUI(){
 try{
 BorderLayoutthisLayout=newBorderLayout();
 getContentPane().setLayout(thisLayout);
 setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
 {
  jp1=newJPanel();
  getContentPane().add(jp1,BorderLayout.NORTH);
  {
  font=newJButton();
  font.addActionListener(this);
  jp1.add(font);
  font.setText("font");
  }
  {
  color=newJButton();
  jp1.add(color);
  color.addActionListener(this);
  color.setText("color");
  }
 }
 {
  jsp=newJScrollPane();
  getContentPane().add(jsp,BorderLayout.CENTER);
  {
  jep=newJTextPane();
  jsp.setViewportView(jep);
  jep.setDocument(newDefaultStyledDocument());
  }
 }
 pack();
 setSize(400,300);
 }catch(Exceptione){
 e.printStackTrace();
 }
}
publicstaticvoidsetFontSize(JEditorPaneeditor,intsize){
 if(editor!=null){
 if((size>0)&&(size<512)){
  MutableAttributeSetattr=newSimpleAttributeSet();
  StyleConstants.setFontSize(attr,size);
  setCharacterAttributes(editor,attr,false);
 }else{
  UIManager.getLookAndFeel().provideErrorFeedback(editor);
 }
 }
}
publicstaticvoidsetForeground(JEditorPaneeditor,Colorfg){
 if(editor!=null){
 if(fg!=null){
  MutableAttributeSetattr=newSimpleAttributeSet();
  StyleConstants.setForeground(attr,fg);
  setCharacterAttributes(editor,attr,false);
 }else{
  UIManager.getLookAndFeel().provideErrorFeedback(editor);
 }
 }
}
publicstaticfinalvoidsetCharacterAttributes(JEditorPaneeditor,
 AttributeSetattr,booleanreplace){
 intp0=editor.getSelectionStart();
 intp1=editor.getSelectionEnd();
 if(p0!=p1){
 StyledDocumentdoc=getStyledDocument(editor);
 doc.setCharacterAttributes(p0,p1-p0,attr,replace);
 }
 StyledEditorKitk=getStyledEditorKit(editor);
 MutableAttributeSetinputAttributes=k.getInputAttributes();
 if(replace){
 inputAttributes.removeAttributes(inputAttributes);
 }
 inputAttributes.addAttributes(attr);
}
protectedstaticfinalStyledDocumentgetStyledDocument(JEditorPanee){
 Documentd=e.getDocument();
 if(dinstanceofStyledDocument){
 return(StyledDocument)d;
 }
 thrownewIllegalArgumentException("documentmustbeStyledDocument");
}
protectedstaticfinalStyledEditorKitgetStyledEditorKit(JEditorPanee){
 EditorKitk=e.getEditorKit();
 if(kinstanceofStyledEditorKit){
 return(StyledEditorKit)k;
 }
 thrownewIllegalArgumentException("EditorKitmustbeStyledEditorKit");
}
publicvoidactionPerformed(ActionEvente){
 Objectobj=e.getSource();
 if(obj==font){
 JEditorPaneeditor=jep;
 setFontSize(editor,20);
 }
 if(obj==color){
 JEditorPaneeditor=jep;
 setForeground(editor,Color.red);
 }
}
}
<p>
有了这样一个呼声:让java代替C语言成为基本语言。这些足以说明java简单易学的这个优点。其次,java的功能强大,前面我也提到了,EJB3.0的推出使java成为了大型项目的首选。
简单生活 该用户已被删除
沙发
发表于 2015-1-20 15:36:30 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
海妖 该用户已被删除
板凳
发表于 2015-1-23 13:49:34 来自手机 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
山那边是海 该用户已被删除
地板
发表于 2015-2-6 20:39:26 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
老尸 该用户已被删除
5#
发表于 2015-2-7 02:18:51 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
金色的骷髅 该用户已被删除
6#
发表于 2015-2-19 19:21:35 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
小魔女 该用户已被删除
7#
发表于 2015-3-6 15:18:38 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
柔情似水 该用户已被删除
8#
发表于 2015-3-13 03:08:21 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-20 10:49:56 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 05:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表