我有一个奇怪的问题.我正在使用窗口的null布局(= JFrame和Windows),如果我使用setResizable(false),窗口大小会变大(向右和向下,我会说大约10个像素).我不知道为什么.
这两个println返回相同的尺寸,有什么奇怪的,也......
mainWnd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainWnd.setTitle(wndTitle);
mainWnd.setBounds(wndPosX, wndPosY, wndWidth, wndHeight);
System.out.println(mainWnd.getHeight() + mainWnd.getWidth());
mainWnd.setResizable(false);
System.out.println(mainWnd.getHeight() + mainWnd.getWidth());
Run Code Online (Sandbox Code Playgroud)
有人有想法吗?为什么窗口会调整大小?
更新:同样的事情(使用和不使用setResizable编译它,如果你重叠窗口,你可以看到它):
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main
{
private static JFrame mainWnd = null;
public static void main(String[] args)
{
mainWnd = new JFrame();
mainWnd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainWnd.setTitle("asda");
mainWnd.setBounds(50, 50, 300, 300);
mainWnd.setResizable(false);
mainWnd.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud) 首先,我要感谢这个惊人的lib!我喜欢它.客户端将自己连接到服务器.服务器应该保存IP并稍后使用它(我真的需要IP).我找到答案:http://lists.zeromq.org/pipermail/zeromq-dev/2010-September/006381.html但我不明白我是如何从消息中获取IP的(XREP)...我想我只能读取ID,但IP由0MQ内部管理.他的第二个解决方案建议将IP作为消息的一部分发送,但我不明白如何获得"公共"-IP.我找到了帖子:在ZeroMQ中获取TCP地址信息
is pass bind a service to an ephemeral port, get a full connection endpoint ("tcp://ipaddress:port")
Run Code Online (Sandbox Code Playgroud)
我不明白这是怎么回事.他的意思是网络服务吗?在我看来,最好将IP从0MQ中取出(它已经拥有IP).我甚至会调整0MQ,如果有人可以指向保存IP的地方,找不到它.目前,套接字类型并不重要.我更喜欢smth REQ-REP之类的.谢谢!
我有一个GridPane1个字母的标签.
这是一张图片:
图片http://s1.directupload.net/images/121010/xu8o79sr.jpg
这是代码:
int charSpacing = 1;
int charsInWidth = 28;
int charsInHeight = 16;
double charWidth = 15;
double charHeight = 20;
GridPane gp = new GridPane();
gp.setAlignment(Pos.CENTER);
Label[] tmp = new Label[charsInHeight*charsInWidth];
String text = "W";
int currArrPos = 0;
for(int y = 0; y < charsInHeight; y++) {
HBox hbox = new HBox(charSpacing);
for(int x = 0; x < charsInWidth; x++) {
tmp[currArrPos] = new Label(text);
tmp[currArrPos].setTextFill(Paint.valueOf("white"));
tmp[currArrPos].setMinHeight(charHeight);
tmp[currArrPos].setMinWidth(charWidth);
tmp[currArrPos].setMaxHeight(charHeight);
tmp[currArrPos].setMaxWidth(charWidth);
tmp[currArrPos].setStyle("-fx-border-color: white;");
hbox.getChildren().add(tmp[currArrPos++]); …Run Code Online (Sandbox Code Playgroud) 我正在使用Game Engine Architecture一书的帮助,在内存管理器上工作.目前我正在阅读关于内存对齐的内容(在书和网页中),我不确定如何正确地使用对齐类.我理解内存对齐的概念(例如,一个4字节的数据块应该位于以0x0,0x4,0x8或0xC结尾的地址)但是在allocateAligned()书中的-function是一个注释,表明对齐必须是幂两个.如果我有一个有两个int和一个的类char,sizeof(classs)告诉我,该类是12字节大.那么,你会通过32作为对齐吗?这不是浪费记忆而且可能导致碎片化吗?
我的问题是,如何正确地对齐类,你能解释一下它更详细(如果你想对齐更大的数据块会发生什么,比如121字节),并且更大的块被对齐是否有意义(因为如果我通知了,处理器在一次调用中只获取8个字节)?
我对javafx有点问题.我添加了一个像这样的更改监听器:
private final ChangeListener<String> pageItemSelected = new ChangeListener<String>()
{
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue){
pageGotSelected(newValue);
}
};
Run Code Online (Sandbox Code Playgroud)
现在问题:如果我更改这样的页面项:
guiPageList.setValue(model.getCurrentTargetPage());
Run Code Online (Sandbox Code Playgroud)
触发事件(通过用鼠标或键选择某些东西)也会被触发.有没有办法禁用事件发射或其他方式?我只需要事件,如果元素是由用户选择的,而不是我用setValue()函数改变它...也许消耗事件,但我不知道这将是什么样的事件.
提前致谢!!!
我正在使用以下.proto文件:
message Header
{
enum MessageType
{
UNKNOWN = 0;
CONNECT = 1;
DISCONNECT = 2;
UPDATE = 3;
REQUEST = 4;
SUBSCRIBE = 5;
UNSUBSCRIBE = 6;
}
required MessageType msgType = 1;
}
message DataSet
{
optional string id = 1;
optional string value = 2;
}
message StdMessage
{
required Header header = 1;
repeated DataSet dataSet = 2;
}
Run Code Online (Sandbox Code Playgroud)
这是编译的StdMessage类:
class StdMessage : public ::google::protobuf::Message {
public:
StdMessage();
virtual ~StdMessage();
StdMessage(const StdMessage& from);
inline …Run Code Online (Sandbox Code Playgroud) 我尝试了以下方法:
int main()
{
char* a = "sdwgfwegwe wefwef wefwefwefwysadqaw";
char* b = "acd";
char* c = "sdwgfwegwe wefwef wefwefwefwysadqaw";
char* d;
d = "acd";
printf("%p\n", a);
printf("%p\n", b);
printf("%p\n", c);
printf("%p\n", d);
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在输出(控制台)上,a和c具有相同的地址以及b和d.我想为每个角色实现一个查找表.这样做有什么好处/情况吗?编译器做了什么(上面的例子,而不是查找表:))?检查是否已使用此字符串,如果没有,则为给定字符串保留内存 - >将其返回给?任何人有一些书籍提示或链接,深入解释内部内存分配/管理,即使它是编译器依赖的?提前致谢.
如何一次创建静态库和动态库?我使用的是qt 5.1.我想有一个.pro同时执行两种lib类型的文件.我需要它用于Windows和Linux.我找到了这样的东西:
CONFIG += staticlib
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能构建共享的呢?
这是我的例子(对于.so):
ROOT_DIR = ./..
INCLUDE_DIR = $$ROOT_DIR/include
SRC_DIR = $$ROOT_DIR/src
BIN_DIR = $$ROOT_DIR/bin
LIB_DIR = $$ROOT_DIR/lib
MAKE_DIR = .
unix {
MOC_DIR = $$ROOT_DIR/moc
OBJECTS_DIR = $$ROOT_DIR/obj
}
win32 {
MOC_DIR = $$ROOT_DIR/moc.win
OBJECTS_DIR = $$ROOT_DIR/obj.win
}
QT -= gui
TARGET = test
TEMPLATE = lib
DESTDIR = $$BIN_DIR
DEFINES += TEST_LIBRARY
SOURCES += Test.cpp
HEADERS += Test.h\
test_global.h
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何添加静态库吗?正如我所说,它也适用于Windows,因此,我需要正确的库.谢谢到目前为止!