仓酷云
标题:
了解下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