我正在尝试在Erlang中创建一个简单的服务器/应用程序.
我的服务器初始化一个套接字gen_tcp:listen(Port, [list, {active, false}, {keepalive, true}, {nodelay, true}])并与客户端连接gen_tcp:connect(Server, Port, [list, {active, true}, {keepalive, true}, {nodelay, true}]).从服务器收到的消息由诸如此类的警卫进行测试{tcp, _, [115, 58 | Data]}.
问题是,数据包有时会在发送或接收时连接起来,从而导致意外行为,因为警卫认为下一个数据包是变量的一部分.
有没有办法确保每个数据包作为单个消息发送到接收进程?
我正在使用 myFrame.setSize(Xsize,Ysize) 设置 JFrame 大小,但这给了我一个问题:这并没有定义框架中的可用空间,而是定义整个框架的大小(它包括 Windows 管理器框架大小,其中并不总是相同)。有没有办法通过定义可用空间大小来定义 JFrame 大小?
我想知道是否有办法创建一个ImageIcon,它是另一个ImageIcon的镜像.
在Google上搜索,我发现如何通过使用许多AWT库来实现.
有没有办法用Swing做到这一点?如果没有,我仍然遇到麻烦的AWT方法:
我想反映的ImageIcon是动画GIF(具有包含透明的颜色)和AWT方法返回一个非透明(透明颜色变为不透明的黑色)和非动画GIF.
任何想法如何保持动画和透明色?
这是我发现的AWT代码(rangerStand是原始的ImageIcon):
Image reversed = rangerStand.getImage();
BufferedImage bufferedImage = new BufferedImage(reversed.getWidth(null), reversed.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics gb = bufferedImage.getGraphics();
gb.drawImage(reversed, 0, 0, null);
gb.dispose();
AffineTransform tx = AffineTransform.getScaleInstance(-1, 1);
tx.translate(-reversed.getWidth(null), 0);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
bufferedImage = op.filter(bufferedImage, null);
ImageIcon lol = new ImageIcon(bufferedImage);
this.sprite.setIcon(lol);
Run Code Online (Sandbox Code Playgroud)
谢谢阅读.
这是我的for()循环:
public void showMovementCase(){
int movePlusAttack = moveAllowed+attackDistance;
int twiceMoveAllowed = (moveAllowed)*2;
for(int i = 0; i <= movePlusAttack*2; i++){
for(int j = 0; j <= movePlusAttack*2;j++){
boolean a = movePlusAttack <= j+i && movePlusAttack >= j-i && i <= movePlusAttack;
boolean b = movePlusAttack <= j+i && movePlusAttack >= i-j && i > movePlusAttack && j <= movePlusAttack;
boolean c = movePlusAttack*3 >= j+i && movePlusAttack >= j-i && i > movePlusAttack && j >= movePlusAttack;
if(a || b …Run Code Online (Sandbox Code Playgroud)