仓酷云

标题: 了解下JAVA的Swing对JTextPane中字体色彩的设置 [打印本页]

作者: 冷月葬花魂    时间: 2015-1-18 11:09
标题: 了解下JAVA的Swing对JTextPane中字体色彩的设置
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
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 海妖    时间: 2015-1-23 13:49
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者: 山那边是海    时间: 2015-2-6 20:39
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 老尸    时间: 2015-2-7 02:18
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 金色的骷髅    时间: 2015-2-19 19:21
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 小魔女    时间: 2015-3-6 15:18
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者: 柔情似水    时间: 2015-3-13 03:08
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者: 愤怒的大鸟    时间: 2015-3-20 10:49
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2