有没有办法在拖动 JFrame 时检测其位置?问题是,在 MAX OS X 上,当您停止移动鼠标时,窗口的位置会更新。我看到一个计算新位置和设置窗口手动位置的提示。但因此我必须知道我开始拖动时的位置。为了更清楚一点,JFrame 用于捕获屏幕,但是当您移动它时,它不会更新,因为它仍然认为它处于旧位置。当您停止移动拖动(但您仍然可以按住鼠标按钮)时,它会更新。
import java.awt.event.ComponentListener;
import java.awt.Component;
import java.awt.event.ComponentEvent;
import javax.swing.JFrame;
void setup() {
frame.addComponentListener(new ComponentListener()
{
public void componentMoved(ComponentEvent evt) {
Component c = (Component)evt.getSource();
println("moved "+frameCount);
}
public void componentShown(ComponentEvent evt) {}
public void componentResized(ComponentEvent evt) {}
public void componentHidden(ComponentEvent evt) {}
}
);
}
void draw() {
}
Run Code Online (Sandbox Code Playgroud) 如果我有一个div:
<div></div>
Run Code Online (Sandbox Code Playgroud)
还有一些css给它一个颜色:
div {
width: 200px;
height: 200px;
padding: 20px;
background-color: red;
}
Run Code Online (Sandbox Code Playgroud)
然后它也为填充区域着色.有没有办法避免这种情况而不改变边框或边距属性?
我创建数组的行给了我一个Generic array creation警告.处理这个问题的好方法是什么?
public class Foo<T> {
void someMethod() {
Point[] points = new Point[3];
}
class Point {
float x, y;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 jQuery 读取 JSON 文件。如果我更新读取的文件,.get()当我读取较新的文件时,它仍然会获取旧值。由于我每秒写入和读取文件,我该如何解决这个问题?手动清除缓存将不是一个选择。
function readEye() {
$.getJSON('output.json', function(data){
console.log(data);
});
}
Run Code Online (Sandbox Code Playgroud) 我在图表上工作,可视化我的电子邮件.我希望能够从某一天收到电子邮件.
这是一个不好的存储方式吗?
HashMap<DateTime, ArrayList<Email>>
Run Code Online (Sandbox Code Playgroud)
或者将日期转换为字符串然后使用更好 HashMap<String, ArrayList<Email>>
注意,添加的日期没有小时,分钟和秒,所以就像06/07/2010例如.
是否有区别:
Foo *foo = new Foo();
shared_ptr<Foo> sp(foo);
_fooVector.push_back(sp);
Run Code Online (Sandbox Code Playgroud)
和
shared_ptr<Foo> sp(new Foo());
_fooVector.push_back(sp);
Run Code Online (Sandbox Code Playgroud)
根据堆栈和堆.在我可以找到的所有示例中,都new在创建智能指针的同一行上使用.所以我想知道第一个例子是否有效.
如何将<>包围的mapDir替换为某个字符串?
String mapDir = "D:\\mapping\\specialists\\ts_gpc\\";
String test = "foo: <mapDir> -bar";
println(test.replaceAll("<mapDir>", mapDir));
Run Code Online (Sandbox Code Playgroud)
上面给了我一个StringIndexOutOfBoundsException。
下面的代码适合我,但是我认为纯java也必须工作。
static String replaceWord(String original, String find, String replacement) {
int i = original.indexOf(find);
if (i < 0) {
return original; // return original if 'find' is not in it.
}
String partBefore = original.substring(0, i);
String partAfter = original.substring(i + find.length());
return partBefore + replacement + partAfter;
}
Run Code Online (Sandbox Code Playgroud) 为什么这会失败?
String n = "h107";
if (n.matches("\\D+")) {
System.out.println("non digit in it");
}
Run Code Online (Sandbox Code Playgroud)
我有一个晚上睡觉,我仍然没有得到它.我现在得到了解决方案:
if (n.matches(".*\\D+.*")) {
Run Code Online (Sandbox Code Playgroud)
但在我(可能缺乏知识)中,第一个也应该匹配.如果它必须匹配一个完整的String,那么行开头的'^'字符的重点是什么.
在java中这是可能的:
enum VisitSetting {
NOT_VISITED,
QUERIED_VISITED,
CONFIRMED_VISITED
}
enum ExcludeSetting {
NONE,
QUERIED_VISITED_AND_CONFIRMED_VISITED,
CONFIRMED_VISITED
}
Run Code Online (Sandbox Code Playgroud)
请注意,CONFIRMED_VISITED也在ExcSetSetting中的VisitSetting中.
我想在目标c中有一些simulair然后我得到了 Redefinition of enumerator 'CONFIRMED_VISITED'
这是实施:
#ifndef RouteApp_IGConstants_h
#define RouteApp_IGConstants_h
typedef enum {
NOT_VISITED = 0,
QUERIED_VISITED,
CONFIRMED_VISITED
} VisitSetting;
typedef enum {
NONE = 0,
QUERIED_VISITED_AND_CONFIRMED_VISITED,
CONFIRMED_VISITED
} ExcludeSetting;
#endif
Run Code Online (Sandbox Code Playgroud)
怎么解决这个问题?我希望不重命名CONFIRMED_VISITED.
我将a const char *与字符串进行比较,由于某种原因它总是成功.
if (std::strcmp(t->detectColor->name, "ghghjg") != 0) {
printf("XXXXXXXXXXX\n");
// check if it was allready a sequencer
if (std::strcmp(t->className, "IM_SURE_IT_CANT_BE_THIS") != 0) {
printf("what is going on?\n");
Run Code Online (Sandbox Code Playgroud)
detectColor名称总是类似于绿色或蓝色,t->className例如是"ofxDTangibleBase".还是它打印
XXXXXXXXXXX
what is going on?
Run Code Online (Sandbox Code Playgroud)
在控制台中.我怎样才能获得有效的比较?