Tag: swap

以编程方式在JFrame中交换两个JPanel

我正在努力完成上述function,但收效甚微。 我正在使用带有2列和2行的GridLayout来向用户显示类似拼图的游戏,其中有4个(200×200像素)JPanels(3个彩色,1个默认bgColor),它们填充整个contentPane。 如果面板位于灰色面板旁边,则单击彩色面板将在评估中解析。 如果是这样,他们应该交换。 我完成了最后一步的每一步,他们交换了。 这是代码: public class MainClass extends JFrame { //Generated private static final long serialVersionUID = 4710628273679698058L; private SpecialPanel redPanel; private SpecialPanel greenPanel; private SpecialPanel yellowPanel; private SpecialPanel grayPanel; public MainClass() { super(“Puzzle”); initPanels(); setSize(410, 410); setLayout(new GridLayout(2, 2)); this.add(redPanel); this.add(greenPanel); this.add(grayPanel); this.add(yellowPanel); } private void initPanels() { redPanel = new SpecialPanel(); […]

用于反转字节顺序/更改字节顺序的命令行

我在一些脚本中乱砍,试图解析由Javas DataOutputStream#writeLong(…)编写的一些数据。 由于java似乎总是写大端,我在将字节输入od遇到问题。 这是因为od总是假设endianess与你当前所在的arch的endianess相匹配,而且我在一个小端机器上。 我正在寻找一个简单的单行程来反转字节顺序。 假设你知道文件的最后8个字节是由前面提到的writeLong(…)方法写的长的。 我目前打印这篇文章的最佳尝试是 tail -c 8 file | tac | od -t d8 ,但是tac似乎只对文本起作用(足够公平)。 我发现了一些对dd conv=swab引用,但这只是成对交换字节,并且不能反转这8个字节。 有谁知道这个好的单行程?

为什么这个语句不适用于java x ^ = y ^ = x ^ = y;

int x=1; int y=2; x ^= y ^= x ^= y; 我期待值被交换。但它给出x = 0和y = 1。 当我尝试使用C语言时,它会给出正确的结果。