这是我第一次使用JNA,它一直很难但同样很棒.
试着遵循这个代码示例如何在Java中获取程序窗口的x和y?
我导入:
import com.sun.jna.*;
import com.sun.jna.platform.win32.WinDef.HWND;
import com.sun.jna.win32.*;
Run Code Online (Sandbox Code Playgroud)
我需要这部分代码
HWND FindWindow(String lpClassName, String lpWindowName);
int GetWindowRect(HWND handle, int[] rect);
Run Code Online (Sandbox Code Playgroud)
问题是没找到第二个导入,我找不到原因.我正在使用Netbeans,这很重要.
注意:我下载了最新版本的JNA.jar,如果您编辑我的问题,请让我知道您编辑的内容,以便下次自行修复.
我试图获取文件的最后一行,但我的输出显示它从未找到它.我也尝试寻找所有行开头的"[",但除非跳转完美,否则程序不会跳过"[".我试图寻找 "\ r \n",System.getProperty( "line.separator"),\ r和\n.最可能是它的一个愚蠢的错误,但如果我拥有它而我找不到它,那么其他人也可能遇到它.
RandomAccessFile raf = new RandomAccessFile(fileLocation, "r");
//Finds the end of the file, and takes a little more
long lastSegment = raf.length() - 5;
//**Looks for the new line character \n?**
//if it cant find it then take 5 more and look again.
while(stringBuffer.lastIndexOf("\n") == -1) {
lastSegment = lastSegment-5;
raf.seek(lastSegment);
//Not sure this is the best way to do it
String seen = raf.readLine();
stringBuffer.append(seen);
}
//Trying to debug it and understand
int location …Run Code Online (Sandbox Code Playgroud) 是否有一种隐藏的方式可以在几分钟内(或任何其他)获得Joda-Time时段
现在我做:
(period.getHours()*60 + period.getMinutes() + roundTwoDecimals((double)(period.getSeconds()/60)))
double roundTwoDecimals(double d) {
DecimalFormat twoDForm = new DecimalFormat("#.##");
return Double.valueOf(twoDForm.format(d));
}
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,我认为可能有一种更简单的方法.
编辑:我的时间将是最长时间,永远不会是几天.这是我第一次和Joda-Time合作.
我需要列出一个人和他们到达聚会的时间列表,当他们离开时,我需要将他们从这个列表中删除.(派对最高人数为150)
Set会告诉我,在任何情况下我都不会两次添加同一个人.
列表将为我提供灵活性,以很少的空格开始列表(如果没有人出现).
数组(不确定它们提供的是什么)但我经常使用它们.
我的想法是要么创建2个数组,一个是名字,另一个是时间.当有人进来时,我将名字保存在另一个中,而将时间保存在另一个上.当他/她离开时我搜索他/她的名字,删除它并使用相同的索引删除另一个数组上的时间.
一个列表可以有一个包含2个元素的数组,然后我只需要将它添加到一个位置,但搜索会更复杂.
或许我太复杂了?
不知何故,我的switch语句没有通过我的任何案例,但它不应该进入一个?(我使用/sf/answers/281048701/作为参考).
没有输出,应用程序被阻止后.
#include <stdio.h>
#include <stdlib.h>
#define BADKEY -1
#define string1 1
#define string2 2
#define string3 3
#define string4 4
char *x = "string1";
typedef struct {char *key; int val; } t_symstruct;
static t_symstruct lookuptable[] = {
{ "string1", string1 }, { "string2", string2 }, { "string3", string3 }, { "string4", string4 }
};
#define NKEYS (sizeof(lookuptable)/sizeof(t_symstruct))
int keyfromstring(char *key) {
int i;
for (i=0; i < NKEYS; i++) {
t_symstruct *sym = lookuptable + i;
printf("before: …Run Code Online (Sandbox Code Playgroud) 首先,我不知道如何称呼我的问题,所以任何更好的标题建议请告诉我。
我想创建一个接口,以便其他人可以添加他们的实现,然后在运行时决定使用哪个实现。
即我创建了一个接口“Food”,并且存在 2 个实现“Breakfast”和“Lunch”。在实现中,两者具有相同的方法名称和相同的参数,我想让用户在运行时调用它们中的任何一个。“makeFood() 使用早餐”或“makeFood() 使用午餐”。
一种可能性是仅编译一种实现,但是如果将来必须使用其他实现,则需要删除 .class 文件。
或者我应该使用某种类型的继承?
另外(不是优先级):我不知道实现类名称,所以有人可以创建“晚餐”或“第二早餐”。这会让我陷入另一个困境,如果用户请求一个尚未实现的“类”该怎么办:SI 总是可以假设用户知道哪些实现可用。