我希望有人能帮助我,这就是我想做的。我有一个JTextPane,我想截取该特定JTextPane坐标和大小的屏幕截图,到目前为止,我可以使用JTextPane的大小截取屏幕截图,但我无法获取特定坐标,我的屏幕截图总是得到(0,0)坐标。这是我的方法:voidcapturaPantalla(){try{intx=txtCodigo.getX();inty=txtCodigo.getY();RectangleareaCaptura=newRectangle(x,y,txtCodigo.getWidth(),txtCodigo.getHeight());BufferedImagecaptur
我有一个JTextPane声明如下:JTextPanebox=newJTextPane();JScrollPanescroll=newJScrollPane();StyledDocumentdoc=box.getStyledDocument();scroll.setViewportView(box);scroll=newJScrollPane(box);我正在向它追加如下文本:publicvoidappendChatText(Stringtext){try{doc.insertString(doc.getLength(),text,null);box.setAutoscrolls(tr
有没有办法从充满文本的jtextpane中“提取”行数?如果有,如果某些行是由于文本换行造成的,它是否有效? 最佳答案 您可以使用Utilities.getRowStart确定JTextPane行的“开始”,从而为您提供结果lineCount。这在换行时也有效。inttotalCharacters=textPane.getText().length();intlineCount=(totalCharacters==0)?1:0;try{intoffset=totalCharacters;while(offset>0){offset=
在我的应用程序中,我使用JTextPane来显示一些日志信息。因为我想突出显示此文本中的某些特定行(例如错误消息),所以我将contentType设置为“text/html”。这样,我就可以格式化我的文本。现在,我创建了一个JButton,它将此JTextPane的内容复制到剪贴板中。那部分很简单,但我的问题是,当我调用myTextPane.getText()时,我得到了HTML代码,例如:blablafoobarblabla而不是只获取原始内容:blablafoobarblabla有没有办法以纯文本形式只获取JTextPane的内容?还是我需要自己将HTML转换为原始文本?
与JTextArea不同,JTextPane没有关闭换行的选项。我找到一个solution关闭JTextPane中的换行,但对于这样一个简单的问题来说似乎太冗长了。有更好的方法吗? 最佳答案 参见NoWrapTextPane.这是链接中包含的代码。JTextPanetextPane=newJTextPane();JPanelnoWrapPanel=newJPanel(newBorderLayout());noWrapPanel.add(textPane);JScrollPanescrollPane=newJScrollPane(no
我是使用NetBeans的Swing新手。我想垂直滚动两个并排的JTextPane。滚动应该同步并通过单个滚动条完成。如果我从NetBean设计器中添加JTextPanes,它们会自动放入JScrollPane中,因此它们可以独立滚动。我删除了封闭的滚动Pane并将它们放在JPanel中,这样JPanel就可以成为单个JScrollPane的客户端。这似乎有效,除了当JTextPanes很长时它们似乎超出了JPanel的末尾。我可以将面板和两个文本Pane滚动到某个点。当我到达底部时,我可以将光标放在其中一个文本Pane中,然后向下箭头超出我的视野。这是我的主要方法的代码。我从NetB
我想在灰色和白色之间交替作为背景,从我的JTextPane的一行到下一行。我试图通过重载paintComponent()方法并根据组件高度和字体大小手动绘制背景来做到这一点,但我没有成功。有什么提示吗? 最佳答案 您可以使用由@VonC编写的行荧光笔(here或here)以响应thisquestion。.为了突出显示交替行,您可以按如下方式使用它:publicstaticvoidmain(String[]args){JTextPanet=newJTextPane();t.setSelectionColor(newColor(1.0f
我正在创建一个简单的聊天程序,我想最终显示html链接。我现在的问题是我无法让文本按照我的意愿出现在用户名旁边。我希望用户名加粗,文本显示在其旁边,但由于某种原因,非加粗文本居中显示。如果我不加粗用户名,它工作正常。上面两个是我将名字加粗时的显示方式,中间是名称未加粗时的显示方式,底部显示超链接我希望它像中间两个一样显示,但名称加粗。这是代码,我做错了什么?请注意,我尝试用JEditorPane替换JTextPane并且发生了同样的事情。packagecom.test;importjava.awt.BorderLayout;importjava.awt.Color;importjava
我正在使用具有JTextPane的java制作应用程序。我希望能够在按下enter键时(或当用户转到下一行时)执行一些代码。我在网上看过,但没有找到解决方案。用C#解决这个问题会更好吗?如果没有,我如何在JTextPane的keyTyped()事件中注册Enter键?如果C#是一个不错的选择,我将如何在C#中执行此操作?这是一个我认为可行的解决方案......但没有//EventtriggeredwhenakeyistypedprivatevoidkeyTyped(java.awt.event.KeyEventevt){intkey=evt.getKeyCode();if(key==K
我的目标是将用户写入JTextPane的关键字着色为蓝色。这是我的代码的样子:privateclassDocumentHandlerimplementsDocumentListener{@OverridepublicvoidchangedUpdate(DocumentEventev){}@OverridepublicvoidinsertUpdate(DocumentEventev){highlight();}@OverridepublicvoidremoveUpdate(DocumentEventev){highlight();}privatevoidhighlight(){Strin