LINUX.ORG.RU

Сообщения tr0ll

 

[java][swing] блокирование jframe

Предположим на одном jframe есть кнопка, по нажатию которой запускается еще один jframe (new JFrameTwoBox().setVisible(true);). Как сделать первый jframe некликабельным после открытия второго и до момента его закрытия как при использовании диалогов JOptionPane.showMessageDialog?

 ,

tr0ll
()

[java] windows uri

Надо поместить в JTextPane html, добавляющий картинку, лежащую в одной директории с jar. В линухе работает так:

jTextPane1.setText("<html><img src='file://" + System.getProperty("user.dir") + "/some.png'></html>");
в винде не работает, походу из-за неверного uri, тк код выдает «file://С:\Program Files\...», а надо «file://С:/Program%20Files/...», пробую так:
String rpl = System.getProperty("user.dir").replace("\\", "/").replace(" ", "%20");
jTextPane1.setText("<html><img src='file://" + rpl + "/some.png'></html>");
И все равно не работает. ЧЯДНТ?

 

tr0ll
()

[java][swing] Проверка наличия изменений

Для проверки наличия изменений перед сохранением данных из JTable использую .isEditing(), проблема в том, что если пользователь после ввода нажмет enter или щелкнет на любую другую ячейку (так, что ячейка станет выбранной, но без курсора в ней) то isEditing вернет false и соответственно ничего не сохраниться. Выходом из ситуации мне видится либо написание собственного велосипеда для проверки наличия изменений, либо надо сделать JTable всегда редактируемым, то есть сделать так, что бы ячейку нельзя было подсветить без установки курсора в ней. Вот что накопал на эту тему:

// Нажатие Enter вызывает редактирование ячейки
jTable1.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "key-enter");
        jTable1.getActionMap().put("key-enter", new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int row = jTable1.getSelectedRow();
                int col = jTable1.getSelectedColumn();
                if (jTable1.isCellEditable(row, col)) {
                    jTable1.editCellAt(row, col);
                }
            }
        });

// Одинарный клик по ячейке вызывает ее редактирование
((DefaultCellEditor) jTable1.getDefaultEditor(String.class)).setClickCountToStart(1);
Как поступить, писать дальше костыли на поведение клавиш стрелок итд итп, писать собственный влосипед проверки или есть более рациональный путь?

 ,

tr0ll
()

[новый удар империи добра] Гугл со своим фуллереном

Вчера кажется началась эта эпопея: вместо буквы в «o» в логотипе гугла (на google.com) крутится красивый объемный фуллерен, который дико тормозит и вешает любой браузер кроме хромиума (и видимо хрома). Империя добра нанесла удар по вражеским браузерам? Хочешь google.com - ставь chrome?

tr0ll
()

[java][swing] Диалог выбора шрифтов

Пока нашел JFontChooser и он мне показался убогим, поправьте если не прав: шрифт интерфейса мелкий и поменять нельзя, установить свою иконку в заголовок окна нельзя, даже задать стартовый шрифт до запуска нельзя. Посоветуйте альтернативу, которая умела бы вышеперечисленное или раскажите как это сделать с JFontChooser.

 ,

tr0ll
()

[java] Повторения random

Надо, что бы возвращаемое число никогда не совпадало с предыдущим, то есть что бы никогда не выподало два одинаковых числа подряд:

int old = -1;

    int rand(int max){
        Random random = new Random();
        int rnd;
        do{
            rnd = random.nextInt(max);
            if (rnd == old) {
                old = rnd;
                continue;
            }
        } while (rnd == old);
        return rnd;
    }
ЧЯДНТ?

 

tr0ll
()

[java][swing] определить координаты без перевода каретки

Как определить координаты X Y в JTextPane по pointer (число символов от первого символа в jTextPane1 до искомого слова) без использования перевода каретки setCaretPosition.

final Point pt[] = new Point[99];
int pointer = 0;
for (int i = 0; i < 99; i++) {
String searchStr = "искомое слово";

while ((pointer = jTextPane1.getText().indexOf(searchStr, pointer + 1)) != -1) {
   pt[i] = определить координаты pointer;
}

 ,

tr0ll
()

[java][swing][getMagicCaretPosition] возникает исключение

Задача кода такова: искать определенное слово в JTextPane и фиксировать координаты его начала (по положению каретки):

int pointer = 0;
int x = 0;
int y = 0;
String searchStr = "искомое слово";

while ((pointer = jTextPane1.getText().indexOf(searchStr, pointer + 1)) != -1) {
      jTextPane1.setCaretPosition(pointer); // устанавливаем каретку перед словом
      // получаем координаты
      x = jTextPane1.getCaret().getMagicCaretPosition().x; // тут возникает
      y = jTextPane1.getCaret().getMagicCaretPosition().y; // исключение
}
на вызове getMagicCaretPosition возникает исключение и цикл останавливается на первом шаге. Как решить проблему?

 ,

tr0ll
()

[java][swing] tooltip для определенных слов в JTextPane

С помощью такого нехитрого кода можно подсветить определенное слово в JTextPane:

   int pointer = 0;
   SimpleAttributeSet red = new SimpleAttributeSet();
   StyleConstants.setForeground(red, Color.red);
   StyledDocument doc = jTextPane1.getStyledDocument();
   String searchStr = "слово, которое подсвечиваем";
   while ((pointer = jTextPane1.getText().indexOf(searchStr, pointer + 1)) != -1) {
      doc.setCharacterAttributes(pointer, searchStr.length(), red, false);
   }
как к этому коду прикрутить фичу, что бы у каждого подсвеченного слова была всплывающая подсказка (setToolTipText или что-то подобное), или может можно обработать щелчек мышкой по подсвеченому слову?

 ,

tr0ll
()

[android 2.2] добавить сой скрипт в автостарт

Собственно как? Ни один из найденных в сети методов не работает. Что пробовал: создавал сервис в /init.rc, добавлял скрипт в /system/etc/init.d/, пробовал программу Autostart (root). Ничего не заработало. Прошивка CyanogenMod 6 RC3 на Nexus One.

tr0ll
()

[shell] детектор запущенности программы

Надо что бы в памяти постоянно висел скрипт, проверяющий запущена ли определенная программа и если она не запущена, то что бы он ее запускал. Навоял нечто такое:

#!/bin/bash

while true
do
    PID=$(pidof программа)
    if [[ -z $PID ]]; then
          программа
    fi
done
Проблема в том, что этот скрипт загружает процессор на 100%. Как этого избежать?

 

tr0ll
()

[gentoo] baselayout и mythtv

Случайно обновил baselayout на старой (полгода без обновлений) генте до 1.12.13, одновременно с этим (?) поломался mythtv («Error: MythTV is using all inputs, but there are no active recrdings?», в статистике написано «Tuner 1 [V4L:/dev/video0] has an error»), устройство /dev/video0 на месте, модули тв тюнера saa7134 и saa7134_alsa вроде тоже в порядке. Могло ли обновление baselayout поломать mythtv или это просто совпадение? Как проверить работоспособность тюнера без иксов и установки дополнительного софта?

 

tr0ll
()

[java][swing] Сложный список

Надо сделать список элементов на форме: в каждом элементе должно быть несколько компонентов - кнопки, текст и картинки, выглядеть должно как то так. Список должен быть динамическим: количество элементов при каждом запуске будет меняться. Так же нужна возможность добавлять новые элементы во время работы и обновлять список. Как это реализовать? Подкиньте готовых примеров или расскажите подробно какие компоненты накидать на форму (netbeans) и как их использовать.

 ,

tr0ll
()

Значки в qt приложениях

Как я понимаю в qt <4.6 нет централизованного управления иконками, то есть каждая программа тянет с собой все графические ресурсы. Вопрос в том, где их искать в системе. Искал в /usr/share/appname, /usr/share/pixmaps и /usr/share/icons, нигде не нашел. В частности интересуют иконки smplayer и virtualbox фронтенда.

tr0ll
()

[Gentoo] Не собирается MythTV

После даунгрейда qt (c 4.6.2 до 4.5.3) перестал собираться mythtv:

[ebuild   R   ] media-tv/mythtv-0.22_p22860  USE="alsa css lirc mmx perl python vdpau (-altivec) -autostart -debug -directv -dvb -faad -fftw -ieee1394 -jack -lcd -pulseaudio -tiff -xvmc" VIDEO_CARDS="nvidia -via" 0 kB [1]

g++ -Wl,-O1 -Wl,--as-needed -Wl,-rpath,/usr/lib64/qt4 -o mythbackend version.o autoexpire.o encoderlink.o filetransfer.o httpstatus.o main.o mainserver.o playbacksock.o scheduler.o server.o housekeeper.o backendutil.o upnpcdstv.o upnpcdsmusic.o upnpcdsvideo.o mediaserver.o mythxml.o upnpmedia.o moc_mainserver.o moc_server.o    -L/usr/lib64/qt4 -L../../libs/libmyth -L../../libs/libmythtv -L../../libs/libavutil -L../../libs/libavcodec -L../../libs/libavformat -L../../libs/libswscale -L../../libs/libmythdb -L../../libs/libmythui -L../../libs/libmythupnp -lmythtv-0.22 -lmythavformat-0.22 -lmythavutil-0.22 -lmythavcodec-0.22 -lmythswscale-0.22 -lmythupnp-0.22 -lmyth-0.22 -lmythui-0.22 -lmythdb-0.22 -L../../libs/libmythlivemedia -lmythlivemedia-0.22 -L../../libs/libmythfreemheg -lmythfreemheg-0.22 -L../../libs/libmythhdhomerun -lmythhdhomerun-0.22 -L/usr/X11R6/lib -lXinerama -lXxf86vm -lXv -lfribidi -L/usr/lib64 -lGLU -lGL -lQtSql -L/usr/lib64/mysql -L/usr/lib64/qt4 -pthread -pthread -lQtXml -pthread -pthread -lQtGui -pthread -lpng -lfreetype -pthread -lgobject-2.0 -lSM -lICE -pthread -pthread -lXrender -lXrandr -lfontconfig -lXext -lX11 -lQtNetwork -pthread -pthread -lQtCore -lz -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -lpthread -ldl
make[2]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.22_p22860/work/branches/release-0-22-fixes/mythtv/programs/mythbackend'
make[1]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.22_p22860/work/branches/release-0-22-fixes/mythtv/programs'
make: *** [sub-programs-make_default-ordered] Ошибка 2
 * ERROR: media-tv/mythtv-0.22_p22860 failed:
 *   emake failed
 * 
 * Call stack:
 *     ebuild.sh, line  54:  Called src_compile
 *   environment, line 5529:  Called die
 * The specific snippet of code:
 *       emake || die "emake failed";

Полный лог сборки.

 

tr0ll
()

[fonts.conf][QT] Установить фиксированный размер шрифта

Хочу зафиксировать размер шрифта Tahoma 8. B /etc/fonts/fonts.conf пишу:

<match target="pattern">
   <test name="family" compare="eq"><string>Tahoma</string></test>
   <edit name="size" mode="assign"><int>8</int></edit>
   <edit name="pixelsize" mode="assign"><int>11</int></edit>
</match>
В gtk приложениях все в порядке, в qt вместо шрифта вот такое говно. Если поставить size 9 и pixelsize 12, то шрифты отобразятся нормально, однако ни один другой размер (ни больше, не меньше) не работает.
[ebuild   R   ] x11-libs/qt-core-4.6.3  USE="exceptions glib iconv qt3support ssl (-aqua) -debug -doc -optimized-qmake -pch" 0 kB
[ebuild   R   ] media-libs/freetype-2.3.11  USE="X cleartype -bindist -debug -doc -fontforge -utils" 0 kB [1]

 ,

tr0ll
()

[xorg 1.8] Сломалась переключалка раскладки

Обновил x11-base/xorg-server до 1.8.2 (флаги nptl udev xorg):

Section «InputDevice»
Identifier «Keyboard0»
Driver «kbd»
Option «XkbModel» «pc105»
Option «XkbLayout» «us,ru(winkeys)»
Option «XkbVariant» ",qwerty"
Option «XkbOptions» «grp:caps_toggle»
EndSection

чяднт?

tr0ll
()

[Netbeans] редактирование кода в редакторе конструктора форм

Автоматически сгенерированный код не редактируется. Как отключить эту фичу?

 

tr0ll
()

LOR API по мотивам почившего tkLOR

Помнится была читалка лора на tcl/tk. Никогда особо не вдавался, но всегда считал, что она просто грабила новости по rss. Недавно с удивлением узнал, что она оказывается умела еще и отправлять комментарии. Через какой бараний рог она это делала? У лора есть API? Может у кого завалялись исходники tklor?

tr0ll
()

Ищу MonacoCY.ttf

Ни у кого не завалялось маковского кириллического шрифта monaco в ttf?

tr0ll
()

RSS подписка на новые темы