我创建了一个MouseMotionDetection类,该角色只是检测用户是否已将鼠标移动到屏幕上的任何位置.
为此我在我的类构造函数中创建了一个新的JFrame,其屏幕大小是不可见的,所以基本上我在整个屏幕上观察鼠标运动.
但是,我有一个奇怪的错误:
在代码的当前形式中,一旦激活此类,我只检测到一个鼠标移动而没有其他任何东西,它在此之后就会停止工作.但是,如果我将设置帧backfround的行放在注释中的0f,0f,0f,0f(透明)然后激活,整个屏幕变为灰色,我会按照我的需要跟踪所有鼠标动作(我只是可以看不到任何东西.
我真的不明白为什么会发生这种情况,没有看到相关问题,也没有在这个讨论MouseMotion事件的相关javadoc中.
这是代码:
public class MouseMotionDetection extends JPanel
implements MouseMotionListener{
public MouseMotionDetection(Region tableRegion, Observer observer){
addMouseMotionListener(this);
setBackground(new Color(0f,0f,0f,0f));
JFrame frame = new JFrame();
frame.setUndecorated(true);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
frame.setSize(screenSize);
frame.setBackground(new Color(0f,0f,0f,0f));
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setAlwaysOnTop(true);
JComponent contentPane = this;
contentPane.setOpaque(true);
frame.getContentPane().add(contentPane, BorderLayout.CENTER);
frame.setVisible(true);
}
@Override
public void mouseDragged(MouseEvent arg0) {
}
@Override
public void mouseMoved(MouseEvent arg0) {
System.out.println("mouse movement detected");
}
Run Code Online (Sandbox Code Playgroud) 我正在试图弄清楚如何计算屏幕可见区域的最大半径.
(在你说之前:嘿!矩形没有半径!我知道屏幕是矩形的(如果摄像机位于90度而不是倾斜),我说的是包围屏幕的假想圆的半径,或者,屏幕中心与矩形的一个角之间的边缘距离是相同的.
所以,据我所知,在屏幕没有倾斜的正常情况下,我可以将VisibleRegion.latLngbounds.southwest和屏幕中心之间的距离找到半径,但是当屏幕倾斜时,它会变成梯形.
现在,如果屏幕是等长梯形,那么我可以以VisibleRegion.farLeft为例(它将等于farEast)并以这种方式计算距离:
VisibleRegion vr = map.getProjection().getVisibleRegion();
Location center = new Location("center");
center.setLatitude(screenCenter.latitude);
center.setLongitude(screenCenter.longitude);
Location farVisiblePoint = new Location("farPoint");
farVisiblePoint.setLatitude(vr.farLeft.latitude);
farVisiblePoint.setLongitude(vr.farLeft.longitude);
float radius = center.distanceTo(farVisiblePoint);
Run Code Online (Sandbox Code Playgroud)
我的问题是:
地图上有任何情况,上面的计算会出错吗?梯形不是一个等one的吗?
谢谢.
在这个Tensorflow检测模型动物园中,他们提到了不同检测体系结构的COCO mAp评分.他们还表示,mAp得分越高,准确度越高.什么是不明白的是如何计算?它可以获得的最高分是多少?为什么这个mAp评分与数据集的数据不同?
我想知道在 Redux Saga 中实现以下行为的正确方法是什么:
我已经通过使用以下模式成功实现了它(抱歉,我缺少完整的代码示例,目前不可用):
function* fetchData(dataType) {
const resp = yield call(MyApi.fetchData, dataType);
if(!resp.err) {
yield put(fetchDataSuccess, resp.data);
} else {
return resp.err;
}
}
function* mySaga() {
const errors = yield all([
call(fetchData, 'typeOne'),
call(fetchData, 'typeTwo),
call(fetchData, 'typeThree)
]);
// errors contains the returned errors
}
Run Code Online (Sandbox Code Playgroud)
这是达到预期效果的最佳方式吗?
我正在使用 PyTorch 的 AutomaticMixedPrecision 功能来训练具有更小占用空间和精度的网络。
在某个时刻,网络中的一些嵌入的张量中包含 NaN,因此我想将其替换为 0,以便执行在线硬负样本挖掘。
然而,在像这样替换张量中的 NaN 之后:
tensor[torch.isnan(tensor)] = 0
Run Code Online (Sandbox Code Playgroud)
在执行下一个缩放器 ste (scaler.step(optimizer)) 时出现以下错误:
assert len(optimizer_state["found_inf_per_device"]) > 0, "No inf checks were recorded for this optimizer."
AssertionError: No inf checks were recorded for this optimizer.
Run Code Online (Sandbox Code Playgroud)
在消除此错误的同时将 NaN 归零的正确方法是什么?
我有一个字符串数组.我想将这些字符串保存在文件中.问题是,我需要创建一个名为db.txt的新文件(仅当它不存在时),然后以某种方式向它写入字符串.
然后我希望能够从该文件中读取字符串并将它们插入到数组中.
插入和使用数组不是问题,但问题是如何弄乱文件?如何创建新的文本文件(如果尚未存在),如何写入文件以及如何从中读取文件?
试图自己学习,但我在互联网上看到了很多方式,并感到困惑.
我有一个web api服务器,它基本上响应2个请求:停止和启动.
在开始时它会执行几项操作,例如,初始化每X秒执行一次方法的计时器,并且在停止时它会停止计时器.
为了实现这一点,我创建了一个处理操作逻辑的单例类.(它需要是单例,因此定时器和更多变量将仅对所有请求存在一次).
服务器运行正常,但最近我在访问Globalconfiguration.AppSettings时遇到了AccessViolationException,以便从我的webconfig文件中检索一个值.
我通过查看我的日志发现了调用单例类终结器,即使我没有重启服务器.
终结器调用我经常使用的方法并在其他方案中正常工作,并且此方法使用抛出异常的GlobalConfiguration类.
我试图找到原因而没有成功.
所以基本上这里有两个错误:1.为什么终结器被称为蓝色?服务器可以运行一周.2. AccessViolationException.
也许错误是相关的?如果我的应用程序内存以某种方式被清除,它会导致调用终结器和访问GlobalConfiguration的异常吗?只是一个理论....
或许也许我不能妥善处理单身人士?但是,在阅读了c#web服务器中的静态变量之后,我发现在应用程序存在时它们应该存在,因此这个bug可能与处理单例无关.我确实处理好了 - 单例有一个私有静态字段,它保存实际的实例,并通过锁定和双重检查进行初始化,以防止多个线程创建单例.
我的方法好吗?你看到我在这种行为中没有预料到的任何可能的错误,或者你知道.net框架的任何行为可能会导致我的静态单例被破坏吗?
我想知道c ++中const ref和const指针之间的区别是什么.当我宣布某事为const ref时,我可以改变它的值吗?或者const继续对象?因为我知道const指针意味着你不能改变POINTER,但你可以改变它指向的VALUE.
例如:
const char& a; // ?
const char* a; // pointer is const
Run Code Online (Sandbox Code Playgroud) 我正在尝试从文件中读取ObjectOutputStream并将其转换为arraylist.整个事情发生在一个应该读取文件并返回数组列表的方法中:
public static List<Building> readFromDatabase(){
String fileName="database.txt";
FileInputStream fileIStream=null;
ObjectInputStream in=null;
List<Building> buildingsArr=null;
try
{
fileIStream = new FileInputStream(fileName);
in = new ObjectInputStream(fileIStream);
buildingsArr=(ArrayList<Building>)in.readObject();
}
catch(IOException e)
{
e.printStackTrace();
}
catch(ClassNotFoundException e)
{
Console.printPrompt("ArrayList<Building> class not found.");
e.printStackTrace();
}
finally{
Console.printPrompt("Closing file...");
close(in);
close(fileIStream);
return buildingsArr;
}
}
Run Code Online (Sandbox Code Playgroud)
Java告诉我这很危险.有哪些替代方案?我不能把返回放在"try"块中,因为它不会这样做/它不会关闭"finally"块中的文件.我需要确保文件将被关闭,并返回我创建的数组列表.有任何想法吗?
我希望我的 pod 接收从我的 kubernetes 集群外部流向我节点中特定端口的多播网络流量。
我正在考虑两种解决方案:
hostNetwork: true标志yaml与hostPort配置一起添加到他们的文件中,以便直接接收到 pod 的流量。eth0接口到docker0另一个接口iptables。方法1是Kubernetes的官方特性,但是感觉就像打破了docker最初强加的安全墙,可能会导致与主机进程的端口冲突等。
另一方面,方法 2 将多播网络流量透明地转发到 pod。
尽管我可以使用自动化工具来传播此配置(ansible/salt 等),但任何配置“超出 Kubernetes 范围”的东西对我来说都感觉有点棘手。
想听听您的优点和缺点、评论,以及多播到 kubernetes 集群的问题的其他解决方案。
java ×4
.net ×1
android ×1
asp.net ×1
c# ×1
c++ ×1
const ×1
docker ×1
file ×1
file-io ×1
google-maps ×1
javascript ×1
kubernetes ×1
mouseevent ×1
multicast ×1
networking ×1
pointers ×1
python ×1
pytorch ×1
reactjs ×1
redux ×1
redux-saga ×1
reference ×1
stream ×1
swing ×1
translucency ×1