小编eva*_*ing的帖子

JFormattedTextField未正确清除

我正在做这个任务,制作一个解决数独的程序.我有一个带有SudokuTextBox网格的面板,扩展了JFormattedTextField.我有一个MaskFormatter,因此每个文本框只接受一个整数.然后在我的面板中,当密钥被释放时,我有这个代码.

 public void keyReleased(KeyEvent e) {
  SudokuTextBox tb = (SudokuTextBox) e.getSource();
  int row = tb.getRow();
  int col = tb.getCol();
  int value = toInteger(tb.getText());
  //System.out.println(value);
  if(sudoku.isValid(row, col, value)) {
   sudoku.set(row, col, value);
  }
  else {
   sudoku.set(row, col, 0);
   tb.setText(null);
  }
  tb.setCaretPosition(0);
  sudoku.print();
 }
Run Code Online (Sandbox Code Playgroud)

问题是,如果我在文本框中放一个有效的值,然后我回去(由数独的规则),输入无效值的文本框被清除.但是当我向前选项卡时,前一个有效值显示在文本框中.我sudokumatrix包含所有已inputed不明确的价值像它应该这样,只有在相应的文本框中的数字.

当我将"SudokuTextBox扩展JFormattedTextField"更改为"SudokuTextBox extends JTextField"时,它更加令人困惑,它就像一个魅力.但我不能设置JTextField的大小,以便它是正方形,我不能强制每个文本框只有一个整数.

我错过了一些非常明显的东西吗

java keyevent sudoku jtextfield jformattedtextfield

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

OS X上的libc ++在哪里?

我已经构建了自己的libc ++,我通常将其包含在内-I /path/to/lib/include -L /path/to/lib/lib.但是现在我必须与其他人共用一个Mac项目,我想给他们一个"正常工作"的Makefile™.

考虑以下程序:

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main(void)
{
    uint32_t nums[100];

    for (size_t i = 0; i < 10; ++i)
    {
        nums[i] = 666;
    }

    vector<int> hello{1, 2, 3, 4, 5, 6, 7, 8};
    for_each(hello.begin(), hello.end(), [](int tal)
    {
        cout << tal << endl;
    });
}
Run Code Online (Sandbox Code Playgroud)

当我编译它时,clang++ -o test test.cc我自然会得到与丢失-std=c++11标志相关的错误.好的,让我们添加它clang++ -std=c++11 -o test test.cc.这给出了几个错误,其中一个错误

test.cc:15:17: error: no matching constructor for initialization of 'vector<int>' …
Run Code Online (Sandbox Code Playgroud)

c++ macos xcode c++11

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

当只有函数的中间部分不同时,避免重复代码

我有一堆函数,所有函数都以相同的方式开始和结束,只有中间部分不同.

我知道我能做到:

int
foo(int bar)
{
    intro();
    /* stuff that differs */
    outro();
}
Run Code Online (Sandbox Code Playgroud)

但我想知道是否还有另一种方法,让我免于重新输入所有函数中的intro()和outro().

c code-duplication

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

Java字节缓冲区getLong()溢出long变量

我正在使用非常简单的骨头ByteBuffer与java 1.4一起使用.我有一个小骨架,基本上只有糟糕的put/getInt()put/getLong()实现.我的问题是,当putInt和getInt工作时,getLong()(我认为它)不起作用.

当我读出第四个字节并将其移入长时间溢出时.但是我所有的变量都很长,所以它不应该溢出.

下面是代码(请记住,这只是一个开始):

public class ByteBuffer {

    private byte[] buffer;
    private int first = 0;
    private int last = 0;
    private int size;
    private int elements;

    public ByteBuffer(int size) {
        this.size = size;
        buffer = new byte[size];
    }

    public void putInt(int theInt) {
        for (int i = 0; i < 4; i++) {
            put((byte) (theInt >>> (8 * i)));
        }
    }

    public int getInt() {
        int theInt = 0;
        for (int i = 0; i < 4; i++) { …
Run Code Online (Sandbox Code Playgroud)

java

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

C++ 通过套接字发送字符串

我正在做一个小型客户端/服务器项目作为 C++ 课程的最后一个项目。我们得到了一些负责通信的类(使用 sys/socket.h),我们基本上可以connection->send(byte)发送一个字节的数据。

假设我有一个要发送的字符串。如何确保从客户端发送到服务器时将“a”解释为“a”,反之亦然?由于标准没有说明 char 默认为无符号或有符号的内容,我不知道如何处理它。

我有一些想法,我可以std::numeric_limits<char>::min()在每一端减去,但我不确定这是一个好的想法。

c++ sockets character-encoding

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

在外部 RAM 中运行 FreeRTOS 的 STM32F4

我们有一个论文项目正在工作,他们正试图让外部 RAM 为 STM32F417 MCU 工作。该项目正在尝试一些真正需要资源且内部 RAM 不够的东西。

问题是如何最好地做到这一点。

当前的方法只是将链接脚本 (gnu ld) 中的 RAM 地址替换为外部 RAM 的地址。

这种方法的问题在于,在初始化期间,由于 FSMC 尚未初始化,因此芯片必须在内部 RAM 上运行。

它似乎可以工作,但是一旦 pvPortMalloc 运行,我们就会遇到一个硬错误,这可能是由于取消引用虚假地址,我们可以看到变量在系统初始化时没有正确初始化(我猜这是有道理的,因为内部 RAM 不是完全使用,可能应该使用)。

我意识到这是一个模糊的问题,但是在 Cortex M4 MCU(更具体地说是 STM32F4)上的外部 RAM 中运行代码时,一般的方法是什么?

谢谢

ram gcc cortex-m3 stm32 ld

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