保持文本检索的格式

我正在制作一个具有聊天function的网络应用程序。 在聊天中,我有一个用于显示消息的JTextPane和一个用于输入的消息。 然后我有一些按钮,允许在输入文本上添加样式(粗体,斜体,字体大小,颜色)。 文本在输入窗格上正确格式化,但是当移动到显示窗格时(一旦按下正确的JButton ),它只具有最后一个字符的格式。 如何在保持原始格式的同时移动文本?例如,如果我在输入上写“Hello Worl d ”,则显示“Hello Worl d” textPane是输入窗格 设置地点: final SimpleAttributeSet set = new SimpleAttributeSet(); 使输入文本加粗的代码(与添加其他样式相同): bold.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { StyledDocument doc = textPane.getStyledDocument(); if (StyleConstants.isBold(set)) { StyleConstants.setBold(set, false); bold.setSelected(false); } else { StyleConstants.setBold(set, true); bold.setSelected(true); } textPane.setCharacterAttributes(set, true); } }); 用于将文本从输入窗格移动到显示窗格的代码: getInput.addActionListener(new ActionListener() { @Override […]

同步不同步

synchronized似乎没有像我预期的那样工作。 它不应该使得括号内的代码相对于由同一对象synchronized的单独代码块而言是primefaces的吗? 我发现它在我的代码中根本没有同步。 private Object movementMutex_ = new Object(); // Thread public void run() { while (run_) { synchronized(movementMutex_) { if (timeToMove_) { Log.v(“meh”, “timeToMove_ was true, moving”); makeMove(); Log.v(“meh”, “Move Complete. Setting timeToMove_ to false”); timeToMove_ = false; Log.v(“meh”, “timeToMove_ is now false”); } } } } // Called by a different thread so […]

JSP重定向和传递值

我有一个JSP,我在其中重定向到另一个jsp,我在该jsp中没有任何其他数据,我想从这个jsp(index.jsp)传递一个值到重定向的jsp(login.jsp),怎么会我这样做? 这里“logonInput”在struts-config.xml中定义 index.JSP就像 我想显示或传递值sessionExpired到login.jsp

Google Cloud Messaging:向“所有”用户发送消息

我正在学习本教程以了解GCM系统。 我对这部分有疑问: 可以向每个注册用户发送消息,但是如何更改该代码以便我可以向所有注册的设备发送单个消息? 我已经找到了答案: 使用GCM向多个Android设备发送推送通知 和 在多个设备上发送推送通知 (几乎相同的问题) – 但找不到解决我问题的答案。 getAllUsers(); if ($users != false) $no_of_users = mysql_num_rows($users); else $no_of_users = 0; ?> No of Devices Registered: 0) { ?> <form id="” name=”” method=”post” onsubmit=”return sendPushNotification(”)”> Name: Email: <input type="hidden" name="regId" value="”/> No Users Registered Yet! 我试图改变代码,但随着我的改变它不起作用.. 我想把所有regID作为数组放入sendPushNofiy … getAllUsers(); if ($users != false) $no_of_users […]

为什么Java缺少访问权限说明符?

有谁知道为什么缺少Java: 一个访问说明符,允许类和所有子类访问,但不允许同一个包中的其他类访问? (保护-负) 一个访问说明符,允许类访问,同一个包中的所有类,以及任何子包中的所有类? (默认加) 一个访问说明符,它将子包中的类添加到当前允许受保护访问的实体中? (被保护的加) 我希望我有更多选择而不是保护和默认。 特别是,我对Protected-plus选项很感兴趣。 假设我想使用Builder / Factory图案类来生成一个具有许多指向其他对象的链接的对象。 对象上的构造函数都是默认的,因为我想强制您使用工厂类来生成实例,以确保正确完成链接。 我想将工厂分组在一个子包中,以便将它们保持在一起并与它们实例化的对象区别开来 – 这对我来说似乎是一个更清洁的包结构。 目前无法做到。 我必须将构建器放在与它们构造的对象相同的包中,以获得对默认值的访问。 但是将project.area.objects与project.area.objects.builders分开会非常好。 那么为什么Java缺乏这些选择呢? 并且,无论如何要伪造它?

在没有Double Dispatch / Visitor模式的情况下解决Java的静态方法调度问题

我正在使用提供这些方法的类Foo : String overloadedMethod(Object) String overloadedMethod(Goo) 由于Java静态调度非接收器参数,我不能只传递我的value (它是一个Object ,但可能有动态类型Goo )并依赖JVM动态选择“正确”方法。 这是我目前(丑陋)的解决方法: Object value = …; Foo foo = new Foo(); if (value instanceof Goo) { Goo gooValue = (Goo) value; return foo.overloadedMethod(gooValue); // -> overloadedMethod(Goo) } else { return foo.overloadedMethod(value); // -> overloadedMethod(Object) } 有没有更好的方法来做到这一点而不修改Foo的代码 (包含重载方法的类)?

在列表项上滑动操作?

android中有没有办法在特定列表项上实现滑动操作? 我正在使用ExpandableListView,我希望能够刷一个特定的列表项来获取它的视图,最好是子/组位置。 这可能吗?

“清单合并失败意味着什么:uses-sdk:minSdkVersion 9不能小于版本14”

当启动一个项目我在android studio中得到这个错误 错误:任务’:app:processDebugManifest’的执行失败。 清单合并失败:uses-sdk:minSdkVersion 9不能小于库中声明的版本14 [com.android.support:appcompat-v7:26.0.0-alpha1] C:\ Users \ max.android \ build-cache \ 794d310f97f0ec38ea2a53aafb733961774fb930 \ output \ AndroidManifest.xml建议:使用工具:overrideLibrary =“android.support.v7.appcompat”强制使用

如何将JEditorPane插入JTable单元格?

我想把JEditorPane放在JTable单元格中。 我写过: jTabel1.setDefaultRenderer(String.class, new StringEditorPane()); ……… class StringEditorPane extends JEditorPane implements TableCellRenderer { public StringEditorPane() { setContentType(“text/html”); } public Component getTableCellRendererComponent( JTable table, Object styledString, boolean isSelected, boolean hasFocus, int row, int column) { if (isSelected) { String styledText = (String) styledString; setText(styledText); setBackground(getSelectionColor()); return this; } else { String styledText = (String) styledString; setText(styledText); […]

如何在BFS中遍历时存储每个节点的级别?

如果我们有二叉树: 7 / \ 5 6 /\ /\ 2 3 1 4 / 5 如何打印以下输出? [7], [5,6] [2,3,1,4] [5] 意味着做一个BFS并在列表中的每个级别存储节点,然后打印列表? 我能够在BFS中遍历,但我无法在树中找到每个元素的正确级别。 如何找到每个节点的正确级别并使用其级别值丰富节点对象? 这是我的逻辑: 遍历BFS 使用其级别值丰富树的每个节点 将节点存储在列表中 遍历列表并创建<Level,List>的Map 将节点级别存储在Set ,然后转换为列表并对其进行排序。 迭代新创建的级别列表,并从地图中找到该列表上的相应节点并打印它