求高手怎样在JTextArea或JTextPane中显示竖排文字,而且是从左到右的竖排 谢谢!帮我解决一下标题的问题! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我大概一个月前也遇到了一样的问题,结果采用了jTextArea解决竖排文字的问题,具体方法如下横排竖排文字最终解决方案 利用fontMetrics解决单个文字大小问题,利用modelToView取得当前输入位置(rect.x,rect.y表示当前输入位置左上的坐标, rect.width为当前输入位置的宽度,一般为1,rect.height为当前输入位置的高度,一般与字号有关) 例: Rectangle rect=null; String inputText = jTextArea1.getText(); try{ rect = jTextArea1.modelToView(inputText.length()); } catch (Exception ee){System.out.println("cant get rect");} fontMetrics = getFontMetrics(jTextArea1.getFont()); int unitLength = fontMetrics.stringWidth("a"); if (jTextArea1.getToolTipText() == "横排" && fontMetrics.stringWidth(inputText) > unitLength) jTextArea1.setBounds(jTextArea1.getX(), jTextArea1.getY(), rect.x, fontMetrics.getHeight()+unitLength/3); if (jTextArea1.getToolTipText() == "竖排" && fontMetrics.stringWidth(inputText) > unitLength) jTextArea1.setBounds(jTextArea1.getX(), jTextArea1.getY(), fontMetrics.stringWidth("啊")+unitLength/3, rect.y+rect.height); jTextArea1.repaint();这个动态决定jTextArea大小的方法可以完成文字的竖排,但是也存在琐碎的bug;如果要完全解决可能需要重写一个继承jTextArea的类。如果有进一步的发现,记得联系我哦 这个问题这样解决不行吗?下面两种供参考:1、采用换行的方式,即每行最后用\n;2、用HTML解决,其中的所有字符用HTML标签标识。 http://www.finereport.com 早就可以了. 直接在低级画板上做好了,高级GUI控件很难搞的 英雄会之在线笔试面试,等你来挑战(更新至2013/5/22) 还是字符串的问题 请各位给我看看,谢谢................. 开车的人不应跑去修路 --------- java中数据类型的问题------ 关于sax解析xml的问题,希望大家帮忙一下啊 求JAVA编的小游戏源代码 急!!在java中怎么显示中文??? 为什么java老要我写bugreport 为何程序不会结束 一个很简单的输出语句,但是结果不太明白 如何做web防盗链? 有关JTable的问题
利用fontMetrics解决单个文字大小问题,利用modelToView取得当前输入位置(rect.x,rect.y表示当前输入位置左上的坐标,
rect.width为当前输入位置的宽度,一般为1,rect.height为当前输入位置的高度,一般与字号有关) 例:
Rectangle rect=null;
String inputText = jTextArea1.getText();
try{
rect = jTextArea1.modelToView(inputText.length());
} catch (Exception ee){System.out.println("cant get rect");} fontMetrics = getFontMetrics(jTextArea1.getFont());
int unitLength = fontMetrics.stringWidth("a");
if (jTextArea1.getToolTipText() == "横排" &&
fontMetrics.stringWidth(inputText) > unitLength)
jTextArea1.setBounds(jTextArea1.getX(), jTextArea1.getY(),
rect.x,
fontMetrics.getHeight()+unitLength/3);
if (jTextArea1.getToolTipText() == "竖排" &&
fontMetrics.stringWidth(inputText) > unitLength)
jTextArea1.setBounds(jTextArea1.getX(), jTextArea1.getY(),
fontMetrics.stringWidth("啊")+unitLength/3,
rect.y+rect.height); jTextArea1.repaint();这个动态决定jTextArea大小的方法可以完成文字的竖排,但是也存在琐碎的bug;如果要完全解决可能需要重写一个继承jTextArea的类。如果有进一步的发现,记得联系我哦
1、采用换行的方式,即每行最后用\n;
2、用HTML解决,其中的所有字符用HTML标签标识。