Как я избавляюсь от курсора мыши в полноэкранном эксклюзивном режиме?

К сожалению, движок базы данных Oracle позволяет вставлять недопустимые значения даты , что приводит ко многим проблемам, особенно при импорте данных в другие движки баз данных, такие как SQL Server.

Чтобы решить эту проблему, вы должны реализовать логику, которая соответствует вашим потребностям, например:

  • Вы можете исключить эти записи из ваших запросов, отфильтровав допустимые диапазоны дат: ( ГДЕ дата между ...)
  • Вы можете обновить записи с недопустимыми значениями, заменив их на NULL
  • Вы можете использовать оператор CASE в своем запросе, чтобы заменить значения на NULL

Однажды я столкнулся с этой проблемой, когда при импорте данных в SQL Server из источника данных Oracle существовали недопустимые значения даты, я решил обновить все записи, где дата недействительна, и заменить на [ 113] значений до начала процесса импорта.


Есть много ссылок, связанных с этой проблемой:

5
задан tshepang 29 May 2014 в 20:27
поделиться

6 ответов

Я думаю, что наконец нашел решение:

System.setProperty("apple.awt.fullscreenhidecursor","true");

Это - собственное Apple системное свойство, которое скрывает курсор мыши, когда приложение находится в полноэкранном режиме. Это - единственный способ, которым я нашел для фиксации его.

4
ответ дан 18 December 2019 в 07:57
поделиться

Один разработчик нашел путь вокруг этого путем создания курсора на один пиксель из прозрачного GIF.

http://sevensoft.livejournal.com/23460.html

Я знаю, что Вы попробовали это, но его конкретно решает проблему полноэкранного режима, точно как Вы говорите, поэтому возможно, существует что-то, что он сделан, что Вы не имеете.

5
ответ дан 18 December 2019 в 07:57
поделиться

Я не знаю, применяется ли это знание, но в старом приложении VB6 у меня была та же проблема, и я избавился от него перемещающий курсор из экрана, дающего его некоторые очень большие значения.
Надежда это помогает.

0
ответ дан 18 December 2019 в 07:57
поделиться

Если Вы работаете только в Windows, похоже, что необходимо будет назвать ShowCursor (ЛОЖЬ) через JNI. По крайней мере, чтобы заставить курсор скрыться завершенный.

Вот некоторый код, который создает 1x1 курсор. Это работает на меня, хотя я все еще добираюсь 1x1 курсор.

 Toolkit toolkit = Toolkit.getDefaultToolkit();
 Dimension dim = toolkit.getBestCursorSize(1,1);
 transCursor = toolkit.createCustomCursor(gc.createCompatibleImage(dim.width, dim.height),
     new Point(0, 0), "transCursor");
 ((Component)mainFrame).setCursor(transCursor);
0
ответ дан 18 December 2019 в 07:57
поделиться

Специально для Вашей проблемы с Mac через JNI Вы могли использовать следующее:

Кварцевая сервисная ссылка дисплея - CGDisplayHideCursor

0
ответ дан 18 December 2019 в 07:57
поделиться

Вот что у меня работало:

Toolkit toolkit = Toolkit.getDefaultToolkit();

// get the smallest valid cursor size
Dimension dim = toolkit.getBestCursorSize(1, 1);

// create a new image of that size with an alpha channel
BufferedImage cursorImg = new BufferedImage(dim.width, dim.height, BufferedImage.TYPE_INT_ARGB);

// get a Graphics2D object to draw to the image
Graphics2D g2d = cursorImg.createGraphics();

// set the background 'color' with 0 alpha and clear the image
g2d.setBackground(new Color(0.0f, 0.0f, 0.0f, 0.0f));
g2d.clearRect(0, 0, dim.width, dim.height);

// dispose the Graphics2D object
g2d.dispose();

// now create your cursor using that transparent image
hiddenCursor = toolkit.createCustomCursor(cursorImg, new Point(0,0), "hiddenCursor");

Конечно, я не тестировал его на Mac (пока), только на Windows. Но когда я использовал обычные методы, я получал курсор в виде черного ящика, поэтому я использую код над созданием прозрачного поля и вместо этого устанавливаю его в качестве курсора. Конечно, вы должны использовать метод setCursor для объекта AWT (например, Frame вашего приложения), чтобы установить этот hiddenCursor. Вот мой метод hideMouse ('fr' - мой фрейм):

public void hideMouse(boolean hide) {
    if(hide) {
        fr.setCursor(hiddenCursor);
    } else {
        fr.setCursor(Cursor.getDefaultCursor());
    }
}
1
ответ дан 18 December 2019 в 07:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: