我使用 ,在这方面取得了一些进展into_actor().spawn(),但我很难访问ctx异步块内的变量。
我将首先显示 Web 套接字处理程序的编译片段,然后是处理程序的失败片段,最后显示完整的代码示例以供参考。
聚焦比赛案例Ok(ws::Message::Text(text))
/// Handler for `ws::Message`
impl StreamHandler<Result<ws::Message, ws::ProtocolError>> for MyWebSocket {
fn handle(&mut self, msg: Result<ws::Message, ws::ProtocolError>, ctx: &mut Self::Context) {
// process websocket messages
println!("WS: {:?}", msg);
match msg {
Ok(ws::Message::Ping(msg)) => {
self.hb = Instant::now();
ctx.pong(&msg);
}
Ok(ws::Message::Pong(_)) => {
self.hb = Instant::now();
}
Ok(ws::Message::Text(text)) => {
let future = async move {
let reader = processrunner::run_process(text).await;
let mut reader = reader.ok().unwrap();
while let Some(line) = reader.next_line().await.unwrap() …Run Code Online (Sandbox Code Playgroud) 所以我正在尝试编写一个程序,它可以收集不同文章中的某些信息并将它们组合起来.我遇到问题的步骤是从网页中提取文章.
我想知道您是否可以提供任何有关从网页中提取文本的java库/方法的建议?
我也找到了这个产品:http: //www.diffbot.com/products/automatic/article/ ,并想知道你是否认为这是要走的路?如果是这样,有人可以指向我的java实现 - 似乎找不到一个虽然显然它存在.
非常感谢
澄清 - 我更多的是寻找一种算法/库/方法,用于检测html dom树中可能存在文章的文本块的位置.像Safari的读者功能一样.ps如果你觉得这样做比python更简单,只是说 - 虽然我的程序必须在Java中运行,因为它最终应该在服务器上运行(使用java框架)我可以尝试让它使用python脚本 - 尽管会只有当你建议Python是要走的路时才这样做.
我有视力障碍,正在开发一些java GUI,如果我的GUI无法访问,我会觉得非常具有讽刺意味.因此,如果有人可以提供一些如何在java中实现可访问性的建议/示例,那么任何可以帮助它的人都会很棒.
我正在寻找如何制作,组合框可访问,tabbedPanes,按钮, 表格(添加说明),以及您认为重要的任何其他内容.此外,有人可以解释什么是getAccessibleContext方法以及如何使用它?其中一些如按钮似乎已经非常容易访问,但我所用的测试组合框并没有用我的语音阅读器解释得那么好.
任何上述任何信息将不胜感激.
非常感谢
如果有用的话,PS使用eclipse来修改代码
所以我试图用来bc计算一些对数但我还需要用它来计算某些东西的模数.在制作我的剧本时,我开始bc测试它.
没有任何标志,bc <<< "3%5"当然会返回3.
但是bc -l(加载数学库,所以我可以计算对数)任何a%b返回的计算,0其中a和b可以是任何数字但0.
发生了什么?
我仍然是Java的初学者,所以我没有学到很多关于线程和并发的知识.但是,我希望能够使用ScheduledThreadPoolExecutor作为计时器,因为我遇到了java.util.Timer和TimerTask的问题.我对线程的创建非常感兴趣,并且知道我将在几周内学习它们.但是,如果有可能,有人可以给我一个基本的例子,说明如何使用util.timer将当前的迷你测试程序转换为使用ScheduledThreadPoolExecutor?
我想尽快完成这个例子,所以我没有太多时间去学习线程 - 不管我想要多少.说完这些之后,请包含您认为Java初学者应该了解的有关ScheduledThreadPoolExecutor的重要信息.
示例程序
我已经做了一个快速的小例子来表示我在一个更大的程序中遇到的问题.该程序应该做的是允许用户按下按钮来启动计数器.然后,用户必须能够在他/她想要时停止并重新启动计数器.在较大的程序中,此计数器保持相等至关重要,因此我使用了scheduleAtFixRate()方法.初始延迟始终相同(在这种情况下为0)也很重要.问题(我相信你会看到)是一旦取消定时器就无法重启 - 我希望ScheduledThreadPoolExecutor能解决这个问题.
码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.TimerTask;
import java.util.Timer;
public class Tester extends JFrame {
JButton push = new JButton("Push");
static JTextArea textOut = new JTextArea();
Timer timer = new Timer();
boolean pushed = false;
static int i = 1;
public Tester() {
super();
add(push, BorderLayout.NORTH);
add(textOut);
push.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (!pushed) {
timer.scheduleAtFixedRate(new Task(), 0, 1000);
pushed = true;
} else {
timer.cancel();
pushed …Run Code Online (Sandbox Code Playgroud) java swing multithreading executorservice event-dispatch-thread
我有一些关于定位组件的问题以及关于文本字段和文本区域的一些问题(Java Swing).任何帮助是极大的赞赏.
现在我试图让两个文本字段彼此相邻,每个文本字段上面都有一个不同的标签,用于描述该文本字段的作用.为了达到这个目的,我把它们放在了一个GridLayout(2, 2).
这是最好的方法吗?这是我知道直接在另一个组件上标签的唯一方法.有没有更好的办法?如果一个按钮上方只有一个标签怎么办?通过这个定位是明智的GridLayout(2, 1)吗?我视力受损,所以我不认为定位按钮只是它们的像素位置是一个选项,除非有一种简单的方法将组件的相对像素数放置到另一个组件.
这引出了我的下一个问题.拥有与上面相同的UI但是在其下居中的另一个组件(按钮)的最佳方法是什么.本质上,UI应该由两个命名文本字段组成,其下有一个计算按钮.我这样做的方法是将上面的组件放在一个面板中,然后将其加上计算按钮添加到周围的面板中GridLayout(2, 1).问题是按钮变得和它上面的面板一样大(我假设).如何调整此项并仍然在文本字段/标签面板下完美对齐按钮?与文本区域上方的标签类似.标签应该很小,但文本区域下面有更大的空间.
(文本字段):再次参考上面的UI,如果用户在第一个文本字段中键入了许多字符,那么字母是否会覆盖右侧的文本字段?如果是这样我怎么能阻止这个?
如果我将文本附加到文本区域并且文本区域已经满了,它是否会自动允许用户滚动?如果不是什么是使文本区域可滚动的简单方法?
现在我没有设置文本区域的大小.它是否随着我添加文字而增长?它是否具有字符数的默认大小?
我想知道是否有一种简单的方法可以将其作为java程序的一部分.
我希望能够ssh到另一台机器并在该机器上执行命令.
一个简单的例子是:runtime.exec("说你好世界"); 将(在Mac上)有一个文本到语音引擎说你好世界.
有没有办法让java在另一台机器上运行此方法?
另外,假设以上是可能的,有没有办法同时ssh到多台机器?
谢谢
关于以下案例的最佳实践,只是一个简单的问题.
使用帐户开发网站.网站设置为没有两个帐户可以拥有相同的用户名,即所有用户名都是唯一的.
在数据库中持久化帐户时,是否可以使用用户名作为主键(唯一标识符),或者是否有一些我需要注意的原因需要单独生成的唯一ID?
希望在乳胶模式下设置变量.我们的想法是在latex模式下设置的值将覆盖customize部分中设置的相同变量的值.我是emacs的新手,所以这些是我的尝试:
(add-hook 'LaTeX-mode-hook '(setq line-move-visual t))
(add-hook 'latex-mode-hook (lambda () (setq line-move-visual t)))
Run Code Online (Sandbox Code Playgroud)
为什么这些不起作用?我该怎么做呢?
澄清:寻找设置变量(setq line-move-visual t),因为我有(setq line-move-visual nil)所有其他文件
我正在使用这一行在我的 Java 程序中打开一个流,但我认为我被真实世界的用户代理阻止了。
private InputStream is = new URL(a).openStream();
Run Code Online (Sandbox Code Playgroud)
其中 a 是包含 url 的字符串。
我可以设置用户代理的最简单方法是什么?我只是刚刚了解他们,所以任何进一步的信息将不胜感激。例如:我想将其设置为 Mozilla/5.0。我是否需要添加更多信息?如果是这样,应该包括什么以及如何包括在内?另外,这是严格允许的,因为我应该担心有关设置用户代理的任何法律问题吗?抱歉,如果这个问题没有意义,那只是因为我对用户代理(基本上是程序发送它们)知之甚少,而且我不确定您是否必须注册或其他什么 - 我已经看到 Mac 上的 Safari 添加了: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.17 (KHTML, like Gecko) Version/6.0.2 Safari/536.26.17
谢谢
Ps 我已经阅读了一个类似的问题,但我从答案中不太明白 - 我是一个 Java 初学者,才刚刚开始尝试打开文件和 url 的流。