小编imm*_*art的帖子

Java setResizable(false)改变窗口大小(swing)

我有一个奇怪的问题.我正在使用窗口的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)

java swing window

16
推荐指数
2
解决办法
2万
查看次数

0MQ - 获取消息ip

首先,我要感谢这个惊人的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之类的.谢谢!

c++ sockets zeromq

14
推荐指数
3
解决办法
5422
查看次数

JavaFx GridPane - 如何集中元素

我有一个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)

java user-interface positioning gridpanel javafx-2

11
推荐指数
3
解决办法
4万
查看次数

类的内存对齐

我正在使用Game Engine Architecture一书的帮助,在内存管理器上工作.目前我正在阅读关于内存对齐的内容(在书和网页中),我不确定如何正确地使用对齐类.我理解内存对齐的概念(例如,一个4字节的数据块应该位于以0x0,0x4,0x8或0xC结尾的地址)但是在allocateAligned()书中的-function是一个注释,表明对齐必须是幂两个.如果我有一个有两个int和一个的类char,sizeof(classs)告诉我,该类是12字节大.那么,你会通过32作为对齐吗?这不是浪费记忆而且可能导致碎片化吗?
我的问题是,如何正确地对齐类,你能解释一下它更详细(如果你想对齐更大的数据块会发生什么,比如121字节),并且更大的块被对齐是否有意义(因为如果我通知了,处理器在一次调用中只获取8个字节)?

c++ memory-management memory-alignment

6
推荐指数
1
解决办法
4235
查看次数

javafx - 如何禁用不是从用户触发的事件

我对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()函数改变它...也许消耗事件,但我不知道这将是什么样的事件.

提前致谢!!!

events javafx

1
推荐指数
2
解决办法
7362
查看次数

为什么C ++中没有针对重复的protobuf字段的Set方法?

我正在使用以下.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)

c++ protocol-buffers

1
推荐指数
1
解决办法
7085
查看次数

char的实习工作 - 更好/等于查找

我尝试了以下方法:

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.我想为每个角色实现一个查找表.这样做有什么好处/情况吗?编译器做了什么(上面的例子,而不是查找表:))?检查是否已使用此字符串,如果没有,则为给定字符串保留内存 - >将其返回给?任何人有一些书籍提示或链接,深入解释内部内存分配/管理,即使它是编译器依赖的?提前致谢.

c c++ lookup-tables

1
推荐指数
1
解决办法
115
查看次数

一次创建静态和动态库

如何一次创建静态库和动态库?我使用的是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,因此,我需要正确的库.谢谢到目前为止!

c++ qt qmake

1
推荐指数
1
解决办法
2686
查看次数